简体   繁体   English

返回数组元素的总和 perl

[英]Returning sum of array elements perl

I have an MyArray whoes content are "200 500 800 100 " in perl .我有一个 MyArray,其内容在 perl 中为“200 500 800 100”。 I need function which return me first 200, second iteration it should return me 200+500, next time it should return me 200+500+800,until it has sumup all the elements.我需要第一个返回 200 的函数,第二次迭代它应该返回我 200+500,下次它应该返回我 200+500+800,直到它总结了所有元素。

   foreach my $i (0 .. $#MyArray)
   {
       @MyArray = (1..$i);     
       $sum += $_ for @MyArray;
   }

I am trying to do something as mentioned above, but its not returning any $sum我正在尝试做上面提到的事情,但它没有返回任何 $sum

How about:怎么样:

use List::Util qw/sum/;
my @arr = (200, 500, 800, 100);
say sum(@arr[0..$_]) for (0..$#arr);

Output:输出:

200
700
1500
1600

Documentation about List::Util .关于List::Util 的文档。

my $array = [200, 500, 800, 100];
my @sum_array;
my $iter_sum = 0;
for my $each (@$array) {
    $iter_sum += $each;
    push @sum_array, $iter_sum;
}
return \@sum_array;

you can get the sum in the @sum_array你可以在@sum_array得到总和

@MyArray = (1..10);
foreach my $i (0 .. $#MyArray)
{
        $sum += $_ for @MyArray;
}
print "sum: $sum"

Output:输出:

sum: 550总和:550

About your code: Maybe you need to put the array definition out of loop关于您的代码:也许您需要将数组定义置于循环之外

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM