我有大约50个数组填充数字,我必须报告每个数组的所有这些元素的总和,所以最终结果有50个单独的数组.
有没有更短的方法来做,而不是为每个阵列写不同的循环?
我是perl的初学者.任何有用的意见/建议将不胜感激.
到目前为止这是我的代码:
for( $j = 1 ; $j <= 50 ; $j++ ) {
for ( @arr[$j] ) {
$sum[$j] += $_;
}
print $sum[$j];
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
您可以使用列表::的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;
Run Code Online (Sandbox Code Playgroud)
输出:
$VAR1 = [
'6', # sum of $arrays[0]
'15', # 1
'24' # 2
];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
236 次 |
| 最近记录: |