next up previous contents index practicapracticaPP2moodleLHPmoodlepserratacpanmodulospauseperlgoogleetsiiullpcgull
Sig: La función delete Sup: Hashes Ant: Hashes y undef Err: Si hallas una errata ...


La función each

Una alternativa es usar la función each. La función each toma un hash como argumento y devuelve una clave distinta cada vez que es llamada. Cuando todas las claves han sido visitadas, devuelve undef. Veamos un ejemplo:
while (defined($nextkey = each %a)) {
  print "The key $nextkey has the value $a{$nextkey}\n";
}

Si each es llamada dentro de un contexto de lista, devuelve una lista con dos elementos: la siguiente clave y el siguiente valor. después que todos los elementos del hash hayan sido visitados, each devuelve una lista vacía. Por ejemplo:

while (($nextkey, $nextval) = each %sound) {
  print "The key $key has the value $nextval\n";
}

Cada hash tiene su propio iterador privado. Esto permite el anidamiento de bucles each, siempre que esten iterando sobre hashes diferentes. El iterador es reinicializado automáticamente al usar las funciones keys o values sobre el hash. También es reinicializado si se almacena una nueva lista de valores en el hash completo o si each ha iterado sobre todos los elementos del mismo, alcanzando el final del hash. Sin embargo, almacenar una nueva pareja clave-valor durante la iteración no necesariamente reinicializa el iterador.


next up previous contents index practicapracticaPP2moodleLHPmoodlepserratacpanmodulospauseperlgoogleetsiiullpcgull
Sig: La función delete Sup: Hashes Ant: Hashes y undef Err: Si hallas una errata ...
Casiano Rodríguez León
2006-02-21