Dav*_*d B 23 perl loops break flow-control
假设我有一段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
}
Run Code Online (Sandbox Code Playgroud)
如果something()是真的,我想打破('最后')所有循环.
我怎样才能做到这一点?我想到了两个选项,我不喜欢这两个选项:使用一些东西GOTO
添加一个将标记的布尔变量something()为true,在每个循环恢复之前检查这个var,last()如果它是真的.
有什么建议或想法?
谢谢.
Woo*_*ble 42
使用标签:
OUTER:
foreach my $x (@x) {
foreach my $y (@z) {
foreach my $z (@z) {
if (something()) {
last OUTER;
}
# do stuff
}
# do stuff
}
# do stuff
}
Run Code Online (Sandbox Code Playgroud)