-2

我有以下数组,我需要将输出映射到哈希结构中@array2@array3键。@array1

@array1 = ('a', 'b', 'c');
@array2 = (1, 2, 3);
@array3 = ('j', 'k', 'l');

预期输出:

a => [1, 'j']
b => [2, 'k']
c => [3, 'l']
4

1 回答 1

0

循环遍历第一个数组的每个索引并将您想要的内容推送到目的地。请注意,%hash需要的值是 list- refs

$ cat ./foo.pl
#! /usr/bin/perl

use strict;
use warnings;
use Data::Dumper;

my @array1 = ( "a", "b", "c" );
my @array2 = ( 1, 2, 3 );
my @array3 = ( "j", "k", "l" );
my %hash;

for( my $i = 0; $i < scalar(@array1); $i++ ){
        push( @{$hash{$array1[$i]}}, $array2[$i], $array3[$i] );
}

print Dumper( \%hash );

$ ./foo.pl
$VAR1 = {
          'c' => [
                   3,
                   'l'
                 ],
          'a' => [
                   1,
                   'j'
                 ],
          'b' => [
                   2,
                   'k'
                 ]
        };

请注意,为了将来参考,向 SO 社区展示您自己在学习和解决此问题方面付出了一些努力(特别是通过向我们展示您尝试过的内容)非常重要。很可能,由于您根本没有这样做,因此该问题将被版主关闭。

于 2013-07-16T17:20:30.520 回答