J'essaie d'utiliser une break
instruction dans une for
boucle, mais comme j'utilise également des sous-marins stricts dans mon code Perl, je reçois une erreur disant:
Les mots nus "break" ne sont pas autorisés lorsque "strict subs" est utilisé à la ligne 154 de ./final.pl.
Existe-t-il une solution de contournement pour cela (outre la désactivation des sous-marins stricts)?
Mon code est formaté comme suit:
for my $entry (@array){
if ($string eq "text"){
break;
}
}
Réponses:
Oh, je l'ai trouvé. Vous utilisez le dernier au lieu de la pause
la source
while
boucles ().my @array = ("_", "apple", "orange"); my $thing; while ($thing = shift @array){ last if $thing =~ /[A-Za-z]/; } print($thing); # "apple"
Données supplémentaires (au cas où vous auriez plus de questions):
la source
Fonctionnerait simplement
last
ici:Si vous avez des boucles imbriquées, vous quitterez la boucle
last
la plus interne. Utilisez des étiquettes dans ce cas:Étant donné une
last
instruction, le compilateur sortira des deux boucles. La même chose peut être faite dans n'importe quel nombre de boucles, et les étiquettes peuvent être fixées n'importe où.la source
Sur une grande itération, j'aime utiliser des interruptions. Appuyez simplement sur Ctrl+ Cpour quitter:
la source