我正在尝试使用List::Gen来迭代包含元素的数组:
[0, 5000, 10000, ... 20000]
但是以下代码给出了错误
use List::Gen;
my $nsamps = range 0, 5000, 20000;
for( $nsamp ($nsamps) {
print $nsamp
}
错误是:
$nsamp requires explicit package ...
为什么?
答案 0 :(得分:2)
您从未声明$nsamp
。
此外,还有一个迷路(
。
最后,你的缩进是不可能的。
修正:
for my $nsamp ($nsamps) {
print $nsamp;
}
答案 1 :(得分:2)
要使用List::Gen
的范围功能,步长将作为第三个参数提供:
use strict;
use warnings;
use feature 'say';
use List::Gen;
my $nsamp = range 0, 20_000, 5_000 ;
say for @$nsamp; # 0
# 5000
# 10000
# 15000
# 20000
# Or, for a faster equivalent
while ( my ( $num ) = $nsamp->() ) {
say $num;
}