Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number
 
PerlMonks  

Re: Merging arrays

by AnomalousMonk (Abbot)
on Jun 27, 2013 at 21:30 UTC ( #1041105=note: print w/ replies, xml ) Need Help??


in reply to Merging arrays

The OP seems to want an array of hashes as output. Both smls's solution here and jeffa's here produce 'ordinary' hashes. Anonymous Monk's solution here produces an AoH, but, as stated, consumes the input arrays. Here's a solution producing an AoH without consuming the input arrays (presumed  'acct4' tyop noted by jeffa corrected):

>perl -wMstrict -MData::Dump -le "my @array = qw( 111 222 333 444 555 888); my @array2 = qw(acct1 acct2 acct3 acct4 acct5 acct8); ;; sub blesh { my ($ar_1, $ar_2) = @_; ;; die qq{referenced arrays not same size} unless @$ar_1 == @$ar_2; ;; return map +{ $ar_1->[$_] => $ar_2->[$_] }, 0 .. $#$ar_1; } ;; my @AoH = blesh(\@array, \@array2); dd \@AoH; " [ { 111 => "acct1" }, { 222 => "acct2" }, { 333 => "acct3" }, { 444 => "acct4" }, { 555 => "acct5" }, { 888 => "acct8" }, ]

Update: The odd-looking  +{ ... } in the map expression serves to disambiguate the  { ... } as an anonymous hash reference constructor rather than a subroutine block. The statement
    return map { { $ar_1->[$_] => $ar_2->[$_] } } 0 .. $#$ar_1;
serves just as well (but note there is now no  , (comma) between the outermost terminating  } and the following 0).


Comment on Re: Merging arrays
Select or Download Code

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others contemplating the Monastery: (7)
As of 2014-12-27 13:07 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (177 votes), past polls