Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Loops 在Perl中,如何将外部循环与内部循环断开?_Loops_Perl_Break_Control Flow - Fatal编程技术网

Loops 在Perl中,如何将外部循环与内部循环断开?

Loops 在Perl中,如何将外部循环与内部循环断开?,loops,perl,break,control-flow,Loops,Perl,Break,Control Flow,假设我有一段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() 我该怎么做? 我想到了两个选择,这两个我都不喜欢: 使用某物GOTO 添加一个布尔变量,该变量将标

假设我有一段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()

我该怎么做? 我想到了两个选择,这两个我都不喜欢: 使用某物
GOTO
添加一个布尔变量,该变量将标记
something()
为true,请在每个循环中检查此变量,然后再继续,如果为true,请检查
last()

有什么建议或想法吗

谢谢。

使用标签:

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

描述了“最后一个标签”语法。

在Perl中,注释标记拼写为
,而不是
/