如何从Perl中的内部循环中打破外部循环?
问题描述:
假设我有像一块的Perl代码:如何从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()
是真实的,请在此变种在每个循环的恢复他们之前和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中,注释标记拼写为“#”,而不是“//”。 – daxim 2010-09-14 13:32:00