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.
精彩评论