循环遍历perl数组



我想:用数字1到10填充数组中的10个元素。通过循环遍历数组中包含的值,将数组中包含的所有数字相加。

例如,一开始是1,然后第二个数字是3(1 + 2),然后下一个数字是6(现有的3加上新的3)这是我当前的代码

#!/usr/bin/perl
use warnings;
use strict;
my @b = (1..10);
for(@b){
$_ = $_ *$_ ; 
}
print ("The total is: @bn")

这是结果

The total is: 1 4 9 16 25 36 49 64 81 100

我要找的是:

The total is: 1 3 6 10 etc..

所示的序列为每个元素:它的索引+ 1 +前一个索引处的值

perl -wE'@b = 1..10; @r = 1; $r[$_] = $_+1 + $r[$_-1] for 1..$#b; say "@r"'

语法$#name用于数组@name的最后一个索引。

如果数组在适当的位置被更改,如所示,则不需要初始化

perl -wE'@b = 1..10; $b[$_] = $_+1 + $b[$_-1] for 1..$#b; say "@b"'

都打印

1 36 10 15 21 28 36 45 55

作为脚本

use warnings;
use strict;
use feature 'say';
my @seq = 1..10; 
for my $i (1..$#seq) {
$seq[$i] = $i+1 + $seq[$i-1]; 
}
say "@seq";
$ perl -E'say "The total is: ",join" ",map$sum+=$_,1..10'
The total is: 1 3 6 10 15 21 28 36 45 55

最新更新