使用List:Gen中的范围迭代各种值

时间:2013-02-05 02:18:01

标签: perl

我正在尝试使用List::Gen来迭代包含元素的数组:

[0,  5000, 10000, ... 20000]

但是以下代码给出了错误

use List::Gen;

my $nsamps = range 0, 5000, 20000;

for( $nsamp ($nsamps) { 
     print $nsamp
 }

错误是:

$nsamp requires explicit package ...

为什么?

2 个答案:

答案 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;
}