开发者

How do I break an outer loop from an inner one in Perl?

Suppose I have a piece of Perl code like:

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
}

If something() is true, I would like to break ('last') all the loops.

how can I do that? I thought of two options, both of which I don't lik开发者_如何转开发e: Using something GOTO Adding a boolean variable which will mark something() is true, check this var in each of the loops before they resume and last() if it's true.

Any suggestions or thoughts?

Thanks.


Use a label:

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


The "last LABEL" syntax is described in the documentation.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜