Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl 如何对数组的数组执行数学运算?_Perl_Arrays - Fatal编程技术网

Perl 如何对数组的数组执行数学运算?

Perl 如何对数组的数组执行数学运算?,perl,arrays,Perl,Arrays,我有一个数组,如下所示,包含所有数值。我想用这些值执行一些数学运算 1) 添加并打印每个数组元素的值。 e、 g 2) 添加每个变量的所有值。 e、 g 3) 查找每个变量的总百分比(sum1,sum2,等等)与总和 $VAR1 = [ '17071', '16120', '16292', 'upto n numbers' ]; $VAR2 = [ '1306', '139

我有一个数组,如下所示,包含所有数值。我想用这些值执行一些数学运算

1) 添加并打印每个数组元素的值。 e、 g

2) 添加每个变量的所有值。 e、 g

3) 查找每个变量的总百分比(
sum1
sum2
,等等)与总和

$VAR1 = [
          '17071',
          '16120',
          '16292',
    'upto n numbers'
        ];
$VAR2 = [
          '1306',
          '1399',
          '1420',
    'upto n numbers'
        ];  
.
.
.
$VARn = [
          '1835',
          '1946',
    'upto n numbers'
        ];  
我尝试了下面的代码来执行第一个数组ref的加法,但它并没有给我正确的值

my $total = 0;
($total+=$_) for $input[0];
print $total;
我会这样做:

use List::Util qw(sum)
my @sums = map { sum(@{$_}) } @array;
my $sum_of_sums = sum(@sums);
my @percentages = map { $_ / $sum_of_sums } @sums;
(编辑:在代码中,需要在$input[0]处取消对arrayref的引用。)

我会这样做:

use List::Util qw(sum)
my @sums = map { sum(@{$_}) } @array;
my $sum_of_sums = sum(@sums);
my @percentages = map { $_ / $sum_of_sums } @sums;

(编辑:在代码中,需要在$input[0]处取消对arrayref的引用。)

Dave的回答已经涵盖了简单的情况。如果您想用矩阵数据进行大规模处理,请考虑使用该模块。(特别是,从开始。谢谢你,布拉德)

戴夫的回答已经涵盖了简单的案例。如果您想用矩阵数据进行大规模处理,请考虑使用该模块。(具体来说,从开始。谢谢你,布拉德)

use List::Util qw(sum)
my @sums = map { sum(@{$_}) } @array;
my $sum_of_sums = sum(@sums);
my @percentages = map { $_ / $sum_of_sums } @sums;