这是如何在数字列表中跳过迭代的最小工作示例:
#!/usr/bin/env perl
use strict;
use feature 'say';
use warnings FATAL => 'all';
use autodie ':default';
foreach my $n (0..29) {
if ($n % 4 == 0) {
$n += 5; # goes to $n+1, even though I increased $n to $n+5
next;
}
say $n;
}
我无法更改
$n
,使其在数字内跳跃多次迭代。
也就是说,我希望
next
向上移动 5,而不是 1。
如何跳过 foreach 循环的多次迭代?
您可以使用 C 风格的 for 循环来代替:
for (my $n = 0; $n <= 29; $n++) {
if ($n % 4 == 0) {
$n += 5;
next;
}
say $n;
}
for ( my $n = 0; $n <= 29; ) {
if ($n % 4 == 0) {
$n += 5;
} else {
++$n;
}
}