Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change
 
PerlMonks  

Re: Two arrays into hash

by Bloodnok (Vicar)
on Jul 16, 2009 at 10:31 UTC ( [id://780636]=note: print w/replies, xml ) Need Help??


in reply to Two arrays into hash

Methinx you could use rudimentary algebraic methods to arrive at your goal, consider:
@array1=qw(A B C); @array2=qw(1 2 3);
is equivalent to/can be re-written as:
@array1=('A', 'B', 'C'); @array2=('1', '2', '3');
Also, the requirement can be re-written as:
%hash = ( array1=>[('A','B','C')], array2=>[('1','2','3')] };
So, substituting for ('A','B','C') & ('1','2','3'), into the re-written required result, gives:
%hash = ( array1=>[@array1], array2=>[@array2] };
But, [@array] can be/usually is written as \@array, hence,
%hash = ( array1=>\@array1, array2=>\@array2 };
As required - also discoverable by reference to perlreftut - as moritz has previously suggested.

A user level that continues to overstate my experience :-))

Replies are listed 'Best First'.
Re^2: Two arrays into hash
by davorg (Chancellor) on Jul 16, 2009 at 10:40 UTC
    [@array] can be/usually is written as \@array

    Careful. The two are not the same. \@array returns a reference to the existing array. [@array] creates a new (anonymous) copy of the original array and returns a reference to the copy. It's a subtle difference, but an important one.

    #!/usr/bin/perl use strict; use warnings; my @arr = (1 .. 5); my %hash = ( aref => \@arr, copy => [ @arr ], ); print "@{$hash{copy}}\n"; print "@{$hash{aref}}\n"; @arr = ('a' .. 'e'); print "@{$hash{copy}}\n"; # original values print "@{$hash{aref}}\n"; # changed values
    --

    See the Copyright notice on my home node.

    Perl training courses

      Good point, well made - I rather overlooked that didn't I ?

      Thanx davorg.

      A user level that continues to overstate my experience :-))

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others romping around the Monastery: (4)
As of 2024-03-29 11:05 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found