perl - 循环遍历 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: @b\n")
这就是结果
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 3 6 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";
推荐阅读
- java - 错误:无法解析“:app@debugAndroidTest/compileClasspath”的依赖关系:没有可用于离线模式的缓存版本?
- javascript - Gmail-API 解码的邮件内容带有不需要的 CSS 代码
- javascript - 当我尝试使用 jQuery UI 隐藏它时,为什么 div 在滑动之前会向下移动?
- javascript - 如何将 rxjs 角度中的每个项目的加载设置为 false 或 true?
- r - R strptime没有管道进入数据帧
- javascript - 有没有办法将我的 PWA 从 Vue 重写为 React,并且不会为现有用户破坏它?
- python-3.x - 如何将文本文件转换为字典
- javascript - 变量值在 catch 块中不递增
- amazon-web-services - 无法将导入的证书选择到 AWS 负载均衡器侦听器中
- cmd - 我正在尝试更改 CMD 中的目录,但它不起作用。它将返回到当前目录,请参见: