perl hash中几个key对应的值怎么相加

比如:
my %a = ('key1',[1,2,3,4,5],'key2',[1,2,3,4,5],'key3',[1,2,3,4,5]);

#希望输出:
$a{'key1+key2+key3'} = [3,6,9,12,15];
#print Dumper(\%a);

用循环要循环两次哎。有没有比较简单的办法?

use Data::Dumper;
my %a = ('key1',[1,2,3,4,5],'key2',[1,2,3,4,5],'key3',[1,2,3,4,5]);
my $res = [];
for my $k(keys %a) {
$res->[$_] += $a{$k}->[$_] for (0..$#{$a{$k}});
}
$a{join('+', keys %a)} = $res;

print Dumper(\%a);
温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答