Как выйти из цикла в Perl?

Я пытаюсь использовать оператор break в цикле for , но поскольку я также использую строгие подмножества в своем коде Perl, я получаю сообщение об ошибке:

Запрет «ломать» не допускается, пока используются «строгие субтитры» на линии ./final.pl 154.

Есть ли обходной путь для этого (помимо отключения строгих подсистем)?

Мой код отформатирован следующим образом:

 for my $entry (@array){ if ($string eq "text"){ break; } } 

О, я нашел его. Вы используете последний вместо перерыва

 for my $entry (@array){ if ($string eq "text"){ last; } } 

Дополнительные данные (если у вас больше вопросов):

 FOO: { for my $i ( @listone ){ for my $j ( @listtwo ){ if ( cond( $i,$j ) ){ last FOO; # ---> # | } # | } # | } # | } # <------------------------------- 

Просто last будет работать здесь:

 for my $entry (@array){ if ($string eq "text"){ last; } } 

Если у вас есть вложенные циклы, то last выйдет из самого внутреннего. В этом случае используйте ярлыки:

 LBL_SCORE: { for my $entry1 ( @array1 ){ for my $entry2 ( @array2 ){ if ( $entry1 eq $entry2 ){ # or any condition last LBL_SCORE; } } } } 

Учитывая last оператор, вы получите компилятор из обоих циклов. То же самое можно сделать в любом количестве циклов, а метки можно фиксировать в любом месте.

На большой итерации мне нравится использовать прерывания. Просто нажмите Ctrl + C, чтобы выйти:

 my $exitflag = 0; $SIG{INT} = sub { $exitflag=1 }; while(!$exitflag) { # Do your stuff } 
  • Эффект точки с запятой после цикла «for»
  • Являются ли таймеры и петли в .Net точными?
  • Почему я должен использовать foreach вместо for (int i = 0; i <length; i ++) в циклах?
  • Вывод из вложенных циклов в Java
  • Когда это делать?
  • Цикл через массив имен переменных в Less
  • Для петли для разбиения матрицы на подматрицы равного размера
  • Объединение по диапазону в R - Применение циклов
  • Фоновый цикл Python при запуске других команд
  • Почему memcpy () и memmove () быстрее, чем указатели?
  • Эмуляция цикла do-while в Bash
  • Давайте будем гением компьютера.