我遇到了双重嵌套while循环中最内层封闭循环的问题.
考虑:
考虑:
use v5.14; my $i=0; while ($i<=1) { my $j=0; do { last if $j==2; say $j++; } while ($j<4); $i++; }
输出在这里:
0 1
而预期的产出应该是:
0 1 0 1
my $i=0; while ($i<=1) { my $j=0; LINE: do { last LINE if $j==2; say $j++; } while ($j<4); $i++; }
给出错误:
Label not found for "last LINE" at ./p.pl line 9.
解决方法
你不能使用最后的内部do {}块,但你可以
my $i=0; while ($i<=1) { my $j=0; LINE: { do { last LINE if $j==2; say $j++; } while ($j<4); } $i++; }
要么
my $i=0; OUTER: while ($i<=1) { my $j=0; LINE: do { next OUTER if $j==2; say $j++; } while ($j<4); } continue { $i++; }