0

我正在尝试使用List::Gen遍历包含元素的数组:

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

但是下面的代码给出了一个错误

use List::Gen;

my $nsamps = range 0, 5000, 20000;

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

错误是:

$nsamp requires explicit package ...

为什么?

4

2 回答 2

2

要使用List::Gen's range 函数,步长作为第三个参数提供:

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;
}
于 2013-02-05T11:24:02.610 回答
2

你从来没有声明过$nsamp

还有,有一个流浪(

最后,你的缩进很不稳定。

固定的:

for my $nsamp ($nsamps) { 
    print $nsamp;
}
于 2013-02-05T02:26:31.303 回答