我如何打破一个外部循环从一个内部的Perl?

jfewjypa  于 2023-11-22  发布在  Perl
关注(0)|答案(3)|浏览(268)

假设我有一段Perl代码,如下所示:

  1. foreach my $x (@x) {
  2. foreach my $y (@z) {
  3. foreach my $z (@z) {
  4. if (something()) {
  5. # I want to break free!
  6. }
  7. # do stuff
  8. }
  9. # do stuff
  10. }
  11. # do stuff
  12. }

字符串
如果something()为真,我想中断(“last”)所有循环。
我该怎么做呢?我想到了两个选项,这两个选项我都不喜欢:使用GOTO添加一个布尔变量,它将标记something()为真,在每个循环恢复之前检查这个var,如果它为真,则检查last()
有什么建议或想法吗?
谢谢.

cnjp1d6j

cnjp1d6j1#

使用标签:

  1. OUTER:
  2. foreach my $x (@x) {
  3. foreach my $y (@z) {
  4. foreach my $z (@z) {
  5. if (something()) {
  6. last OUTER;
  7. }
  8. # do stuff
  9. }
  10. # do stuff
  11. }
  12. # do stuff
  13. }

字符串

wgmfuz8q

wgmfuz8q2#

“last LABEL”语法描述为in the documentation

wmtdaxz3

wmtdaxz33#

请注意,您也可以在一行代码中执行此操作。使用关键字LINE。例如perl -ane 'next if length$F[5]!=1; for(split/,/,$F[6]){next LINE if length$_!=1}; print'

相关问题