Cada hash es una estructura de datos que contiene un iterador privado.
Esto permite el anidamiento
de bucles each
, siempre que esten iterando sobre hashes diferentes.
El iterador es reinicializado automáticamente en las siguientes circunstancias:
keys
o values
sobre el hash.
Por ejemplo:
nereida:~/src/perl/YappWithDefaultAction/lib/Parse/Eyapp> perl -wde 0 main::(-e:1): 0 DB<1> %a = (juan=>5, pedro=>0, marta=>10) DB<2> $n = each %a; print $n pedro DB<3> $n = each %a; print $n marta DB<4> @b = keys %a; $n = each %a; print $n pedro
each
ha iterado
sobre todos los elementos del mismo, alcanzando el final del hash.
lhp@nereida:~/public_html/cgi-bin/tt$ perl -wde 0 main::(-e:1): 0 DB<1> %a = (juan=>5, pedro=>0, marta=>10) DB<2> $n = each %a; print $n pedro DB<3> @a{juan,marta} = (2,3) DB<4> $n = each %a; print $n marta DB<5> x %a 0 'pedro' 1 0 2 'marta' 3 3 4 'juan' 5 2
Casiano Rodríguez León