Как в 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 () как истинное, проверьте эту переменную в каждом из циклов перед их возобновлением и last () , если оно истинно.

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

Спасибо.

23
задан David B 5 September 2013 в 13:02
поделиться