我试图在一个 "for "循环中使用 "break "语句,但由于我在Perl代码中也使用了strict subs,我得到一个错误提示。
Bareword "break" not allowed while 在./final.pl中使用了"strict subs"。 第154行。
对此有什么解决方法吗(除了禁用严格子系统)?
我的代码的格式如下。
for my $entry (@array){
if ($string eq "text"){
break;
}
}
其他数据(以备你有更多问题)。
FOO: {
for my $i ( @listone ){
for my $j ( @listtwo ){
if ( cond( $i,$j ) ){
last FOO; # --->
# |
} # |
} # |
} # |
} # <-------------------------------
这里只需 "last "即可。
for my $entry (@array){
if ($string eq "text"){
last;
}
}
如果你有嵌套循环,那么last
将从最里面的循环退出。
在这种情况下,请使用标签。
LBL_SCORE: {
for my $entry1 ( @array1 ){
for my $entry2 ( @array2 ){
if ( $entry1 eq $entry2 ){ # or any condition
last LBL_SCORE;
}
}
}
}
给定的last
语句将使编译器从两个循环中出来。
同样可以在任何数量的循环中进行,标签可以固定在任何地方。