Am'm încercarea de a utiliza o "pauză" declarație într-un pentru buclă, dar din moment ce'm, de asemenea, folosind strict submarine în cod Perl, am'm obtinerea o eroare de a spune:
Bareword "pauză" nu este permis în timp ce "strict subs" în uz la ./final.pl linia 154.
Există o soluție pentru asta (pe langa dezactivarea strict submarine)?
Codul meu este formatat după cum urmează:
for my $entry (@array){
if ($string eq "text"){
break;
}
}
Date suplimentare (în cazul în care aveți mai multe întrebări):
FOO: {
for my $i ( @listone ){
for my $j ( @listtwo ){
if ( cond( $i,$j ) ){
last FOO; # --->
# |
} # |
} # |
} # |
} # <-------------------------------
Pur și simplu "ultima" ar lucra aici:
for my $entry (@array){
if ($string eq "text"){
last;
}
}
Dacă aveți bucle imbricate, apoi "ultima" va ieși din cele mai intime. Utilizarea etichetelor în acest caz:
LBL_SCORE: {
for my $entry1 ( @array1 ){
for my $entry2 ( @array2 ){
if ( $entry1 eq $entry2 ){ # or any condition
last LBL_SCORE;
}
}
}
}
Dat "ultima" declarație va face compilator pentru a ieși din ambele bucle. Același lucru poate fi făcut în orice număr de bucle, și etichete pot fi reparate oriunde.