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

foreach my $key (keys %{$data->{blah}[$idx]{blih}}) { print "$key : $data->{blah}[$idx]{blih}{$key}\n"; }
you have just
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

foreach my $key (keys %{$data->{blah}[$idx]{blih}}) { my $value = $data->{blah}[$idx]{blih}{$key}; ... }
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 :-)