in reply to Using a hash with the @ sigil
Because you're effectively using a hash slice.
What that does is the @ in front of the hash presents its keys. Then if any of the keys match any elements in the array, those values are returned:
my %h = (1 => 'a', 2 => 'b', 3 => 'c'); my @a = (2, 3); my @b = @h{@a}; print "$_\n" for @b; __END__ b c
-stevieb
|
|---|