in reply to one-liner to merge arrays (Re: A C-like brain in a Perl-like world)
in thread A C-like brain in a Perl-like world

The reason why is because your map is evaluating into a hash reference, not a hash - values take a hash for it's argument, not a hash reference. Now, if you use a tempory hash reference instead, the reason for the double curlies becomes much more apparent:
my $hash = { map {$_ => $_ } @a,@b }; my @merged = values %{ $hash };
Good question, by the way :)

jeffa