Beefy Boxes and Bandwidth Generously Provided by pair Networks
"be consistent"
 
PerlMonks  

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

by andye (Curate)
on Sep 27, 2001 at 19:43 UTC ( #115124=note: print w/ replies, xml ) Need Help??


in reply to A C-like brain in a Perl-like world

my @merged = values %{{ map {$_ => $_ } @array1,@array2 }} ;
The double-curlies are necessary - with single-curlies the interpreter whines and dies. If anyone can explain why, I'd be interested.

andy.


Comment on one-liner to merge arrays (Re: A C-like brain in a Perl-like world)
Download Code
Replies are listed 'Best First'.
(jeffa) Re: one-liner to merge arrays
by jeffa (Bishop) on Sep 27, 2001 at 23:25 UTC
    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

Re: one-liner to merge arrays (Re: A C-like brain in a Perl-like world)
by extremely (Priest) on Sep 27, 2001 at 23:42 UTC
    Lets look at it blown out:
    = values %{{ map {$_ => $_ } @a,@b }} ; = values # I want a hash and return a list %{ } # I turn a hashref into a hash { } # I turn a list into a hashref map { } @a,@b # I return a list from a list => , # We construct lists

    HTH...

    --
    $you = new YOU;
    honk() if $you->love(perl)

      Thanks extremely and jeffa, it's all clear now.

      I should have realised, since the array equivalent would be @{[  ...  ]} , that the brackets were doing different things - but I'd managed to confuse myself.

      Cheers,
      Andy.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://115124]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others examining the Monastery: (11)
As of 2015-07-08 04:09 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (94 votes), past polls