perl - 在 Perl 中,如何检查数组元素之间的步长?

标签 perl

假设我有一个如下所示的数组:

@var = ( 1, 59, 120, 181 );

如何获取每个元素之间的步骤数组,例如:

@var_steps = ( 58, 61, 61 );

我知道我可以使用迭代器来执行此操作 ii + 1对于每个索引,但是有更好的方法吗?

最佳答案

my @var = ( 1, 59, 120, 181 );
my @var_steps = map { $var[$_+1] - $var[$_] } 0 .. $#var-1;

use List::MoreUtils qw(pairwise);
my @a1 = @var[0..$#var-1];
my @a2 = @var[1..$#var];
my @var_steps = pairwise { $b - $a } @a1, @a2;

关于perl - 在 Perl 中,如何检查数组元素之间的步长?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20042856/

相关文章:

linux - IPC msgsnd 意外等待

perl - 在使用 WWW::Mechanize 获取 <td> 标记内的 <a> 时获取 <td> 文本

perl - Net::SSH::Perl 使用转发的 SSH key

linux LF 在我的 perl 脚本中不起作用

python - 检查 Perl 模块是否从 Python 程序中安装

bash - 将 perl while 循环更改为 shell

perl - WWW::Mechanize->get 错误(不支持 HTTPS)

linux - 浏览器尝试下载 .pl 文件而不是执行它 - apache2、perl cgi 脚本、ubuntu

macos - 从终端查找并替换文件名中的字符

python - Perl 中的 "s!"运算符有什么作用?