in reply to Re^5: Parsing XML w/ Attributes
in thread Parsing XML w/ Attributes
It's the fact that you can name both the key and the value from the hash as you iterate so you do not have to use $hash{$key}, but instead have just $value. Which is especially handy if that hash is not in a variable, but rather is part of a more complex datstructure. So that instead of
you have justforeach my $key (keys %{$data->{blah}[$idx]{blih}}) { print "$key : $data->{blah}[$idx]{blih}{$key}\n"; }
while (my ($key, $value) = each %{$data->{blah}[$idx]{blih}}) { print "$key : $value\n"; }
In that example it did not make a big difference especially because the value was used only once, but it may be handy. Especially if you find yourself doing something like
Of course you have to keep in mind that the two are not equivalent. The $value created in the last snippet is a copy, the $value created by each() is an alias. Which makes a huge difference if you modify it :-)foreach my $key (keys %{$data->{blah}[$idx]{blih}}) { my $value = $data->{blah}[$idx]{blih}{$key}; ... }
|
|---|