我如何打破一个外部循环从一个内部的Perl?

jfewjypa  于 2023-11-22  发布在  Perl
关注(0)|答案(3)|浏览(188)

假设我有一段Perl代码,如下所示:

foreach my $x (@x) {
 foreach my $y (@z) {
  foreach my $z (@z) {
   if (something()) {
    # I want to break free!
   }
   # do stuff 
  }
  # do stuff
 }
 # do stuff
}

字符串
如果something()为真,我想中断(“last”)所有循环。
我该怎么做呢?我想到了两个选项,这两个选项我都不喜欢:使用GOTO添加一个布尔变量,它将标记something()为真,在每个循环恢复之前检查这个var,如果它为真,则检查last()
有什么建议或想法吗?
谢谢.

cnjp1d6j

cnjp1d6j1#

使用标签:

OUTER:
foreach my $x (@x) {
 foreach my $y (@z) {
  foreach my $z (@z) {
   if (something()) {
    last OUTER;
   }
   # do stuff 
  }
  # do stuff
 }
 # do stuff
}

字符串

wgmfuz8q

wgmfuz8q2#

“last LABEL”语法描述为in the documentation

wmtdaxz3

wmtdaxz33#

请注意,您也可以在一行代码中执行此操作。使用关键字LINE。例如perl -ane 'next if length$F[5]!=1; for(split/,/,$F[6]){next LINE if length$_!=1}; print'

相关问题