0

I have an array a1 and an array-of-arrays a2.

@a1 = [1,2,3,4,5] 

and

@a2 = [ [adf],[bcg],[yet],[gpd],[iop]]

Now i want to have a hash where a1 are the keys and arrays of a2 as values. how do I do it ?

4

2 に答える 2

0

これを行うにはいくつかの方法があります。あなたの質問では構文が少しずれているので、私の変数宣言があなたが望んでいたものであると仮定します。

my @a1 = (1,2,3,4,5);
my @a2 = ( ["a", "d", "f"], ["b", "c", "g"], ["y","e","t"], 
           ["g", "p", "d"], ["i", "o", "p"] );
# Thus $a2[0][1] => "d", etc.                                                                                                                                           

#Perl 5.12 and higher you can use "each" on an array
my %a3;
while (my ($a1_index, $a1_value) = each @a1) {
    $a3{$a1_value} = $a2[$a1_index];
}
# Now @{$a3{4}} => ["g", "p", "d"] for example

# Before 5.12 you would have to do something like this:
my %a4;
for my $i (0..$#a1) {
    $a4{$a1[$i]} = $a2[$i];
}
# Now @{$a4{4}} => ["g", "p", "d"]
于 2013-06-28T07:04:34.837 に答える