在perl中构造“until(EXPR)BLOCK”语句时,是否有一种整洁的方法来遵循“严格”和“警告”参数?

时间:2014-10-08 23:12:16

标签: perl loops

使用以下代码作为参考......

#!/usr/bin/perl
use strict;
use warnings;

my $counter = 0;
until ($counter == 10){
    $counter++;
}
print $counter;

..通过这样做,$ counter变量可以在until循环之外访问,因此运行它将打印" 10"。

然而,它一直在唠叨我.. 我如何声明$ counter varible,并遵守'使用警告' (可能是严格的?),但只能在until循环中访问它。

虽然我不是专家..现在已经用perl编写了几年,本能地,以下内容应该有效......

#!/usr/bin/perl
use strict;
use warnings;

until (my $counter == 10){
    $counter++;
}

但似乎没有首先将$ counter声明为数值,并且因为我们在表达式中使用了==,所以会打印以下警告。

Use of uninitialized value $counter in numeric eq (==) at test.pl line 5.

我知道这似乎是肛门。但我必须满足我的预感......!

1 个答案:

答案 0 :(得分:2)

使用C-style for loop

for ( my $counter = 0; $counter != 10; $counter++ ) {
    ...;
}

或者更好,a counting loop

for my $counter ( 0 .. 9 ) {
    ...;
}