Подтвердить что ты не робот

Как нарушить внешний цикл из внутреннего в 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() истинно, я хотел бы сломать ('last') все циклы.

как я могу это сделать? Я думал о двух вариантах, которые мне не нравятся: Используя что-то GOTO Добавление логической переменной, которая будет отмечать something(), истинно, проверьте этот var в каждом из циклов до их возобновления и last(), если это правда.

Любые предложения или мысли?

Спасибо.

4b9b3361

Ответ 1

Используйте метку:

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