我有大约 50 个用数字填充的数组,我必须为每个数组报告所有这些元素的总和,因此最终结果有 50 个单独数组的总和。
除了为每个数组编写不同的 for 循环之外,还有什么更短的方法吗?
我是 perl 的初学者。任何有用的意见/建议将不胜感激。
到目前为止,这是我的代码:
for( $j = 1 ; $j <= 50 ; $j++ ) {
for ( @arr[$j] ) {
$sum[$j] += $_;
}
print $sum[$j];
}
谢谢!
最佳答案
您可以使用 List::Util和 map
,假设您有一个数组数组:
use strict;
use warnings;
use Data::Dumper;
use List::Util qw(sum);
my @arrays = (
[1,2,3],
[4,5,6],
[7,8,9]
);
my @sums = map sum(@$_), @arrays; # sum each array
print Dumper \@sums;
输出:
$VAR1 = [
'6', # sum of $arrays[0]
'15', # 1
'24' # 2
];
关于arrays - perl一次添加多个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11347884/