一次添加多个数组perl

use*_*069 2 arrays perl sum

我有大约50个数组填充数字,我必须报告每个数组的所有这些元素的总和,所以最终结果有50个单独的数组.

有没有更短的方法来做,而不是为每个阵列写不同的循环?

我是perl的初学者.任何有用的意见/建议将不胜感激.

到目前为止这是我的代码:

for( $j = 1 ; $j <= 50 ; $j++ ) {
  for ( @arr[$j] ) {
    $sum[$j] += $_;
  }
  print $sum[$j];
}
Run Code Online (Sandbox Code Playgroud)

谢谢!

TLP*_*TLP 7

您可以使用列表::的Utilmap,假设你有一个数组的数组:

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)