Ich versuche, eine break
Anweisung in einer for
Schleife zu verwenden, aber da ich in meinem Perl-Code auch strenge Subs verwende, wird die folgende Fehlermeldung angezeigt:
Barwort "break" ist nicht zulässig, während "strict subs" in ./final.pl Zeile 154 verwendet wird.
Gibt es eine Problemumgehung dafür (außer das Deaktivieren strenger Subs)?
Mein Code ist wie folgt formatiert:
for my $entry (@array){
if ($string eq "text"){
break;
}
}
Antworten:
Oh, ich habe es gefunden. Sie verwenden last anstelle von break
quelle
while
() Schleifen.my @array = ("_", "apple", "orange"); my $thing; while ($thing = shift @array){ last if $thing =~ /[A-Za-z]/; } print($thing); # "apple"
Zusätzliche Daten (falls Sie weitere Fragen haben):
quelle
last
Würde hier einfach funktionieren:Wenn Sie verschachtelte Schleifen haben,
last
wird die innerste Schleife verlassen. Verwenden Sie in diesem Fall Etiketten:Wenn eine
last
Anweisung angegeben wird, wird der Compiler aus beiden Schleifen ausgegeben. Das Gleiche kann in einer beliebigen Anzahl von Schleifen durchgeführt werden, und Beschriftungen können überall befestigt werden.quelle
Bei einer großen Iteration verwende ich gerne Interrupts. Drücken Sie einfach Ctrl+, Cum das Programm zu beenden:
quelle