in reply to Re^2: why doesn't "my ($a,$b)" return a list?
in thread why doesn't "my ($a,$b)" return a list?
just recently I got bitten by trying to nest two while (each ) on the same hash, because the iteration-pointer is tied to the hashIf you do not change the hash in the loop, you can use your own iterator like that:
sub hash_iterator { my %h = @_; return sub { each %h; } } # make_iterator my %test = (k1 => 'v1', k2 => 'v2', k3 => 'v3', 'k-last' => 'v-last'); my $it1 = hash_iterator(%test); my $it2 = hash_iterator(%test); while(<>){ print join ':',($it1->())[0,1]; print ';',join ':',($it2->())[0,1]; print ' - ',join ':',($it2->())[0,1]; print "\n"; }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^4: why doesn't "my ($a,$b)" return a list?
by LanX (Saint) on Aug 20, 2010 at 13:35 UTC |