Arrays 在HashMapPerl中,如何将一个数组作为键,将其他多个数组作为值?
我有以下数组,我需要将Arrays 在HashMapPerl中,如何将一个数组作为键,将其他多个数组作为值?,arrays,perl,hashmap,Arrays,Perl,Hashmap,我有以下数组,我需要将@array2和@array3的输出映射到哈希结构中@array1的键 @array1 = ('a', 'b', 'c'); @array2 = (1, 2, 3); @array3 = ('j', 'k', 'l'); 预期产出: a => [1, 'j'] b => [2, 'k'] c => [3, 'l'] 循环第一个数组的每个索引,并将所需内容推送到目标中。请注意,%hash的值需要是列表引用 $cat./foo.pl #! /usr/bin
@array2
和@array3
的输出映射到哈希结构中@array1
的键
@array1 = ('a', 'b', 'c');
@array2 = (1, 2, 3);
@array3 = ('j', 'k', 'l');
预期产出:
a => [1, 'j']
b => [2, 'k']
c => [3, 'l']
循环第一个数组的每个索引,并将所需内容推送到目标中。请注意,
%hash
的值需要是列表引用
$cat./foo.pl
#! /usr/bin/perl
严格使用;
使用警告;
使用数据::转储程序;
my@array1=(“a”、“b”、“c”);
my@array2=(1,2,3);
my@array3=(“j”、“k”、“l”);
我的%hash;
对于(my$i=0;$i<标量(@array1);$i++){
push(@{$hash{$array1[$i]},$array2[$i],$array3[$i]);
}
打印转储程序(\%hash);
美元/foo.pl
$VAR1={
‘c’=>[
3.
“我
],
“a”=>[
1.
“j”
],
“b”=>[
2.
“k”
]
};
请注意,为了将来的参考,向社区展示您自己在学习和解决这一问题方面所做的努力是很重要的(具体来说,向我们展示您所做的尝试)。很可能,既然你根本没有这样做,这个问题将由主持人来解决。你能给我举个例子吗,因为我不明白吗?@neylan这是关于给出正确答案的,因为我已经尝试使用引用来推送元素,这并不是我没有尝试过。我的观点不是你没有尝试过,你没有告诉我们你已经试过了。下次显示不起作用的代码。
$ 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'
]
};