Non proprio conoscendo Perl, ho migliorato uno script Perl con l'aiuto di un motore di ricerca amichevole.Esiste un modo più pulito per "uscire" condizionatamente da questo ciclo Perl?
trovo che ho bisogno di uscire da un ciclo while impostazione di un flag se la condizione si avvera:
foreach my $element (@array) {
if($costlyCondition) {
$flag = 1;
last;
}
}
So che il modo più bello di usare 'ultima' è qualcosa di simile:
foreach my $element (@array) {
last if ($costlyCondition);
}
Naturalmente, questo significa che mentre posso godere lo zucchero sintattico, non riesco a impostare la mia bandiera all'interno del ciclo, il che significa che ho bisogno di valutare $costlyCondition
ancora una volta al di fuori.
C'è un modo più pulito per fare questo?
postfix 'if' in realtà è solo per una dichiarazione. Il tuo primo è preferibile per più affermazioni su un condizionale. –
Penso che un blocco if sia l'opzione migliore in questo caso. Il solito argomento per condizionali postfix sui controlli di loop è che posiziona il codice più significativo a sinistra. Sottolineando che il ciclo ha più condizioni di uscita rispetto a quelle condizioni di uscita. In questo caso, se usi alcune espressioni composte, il risultato nasconde semplicemente il controllo del loop più in profondità nell'espressione, rendendo più difficile vedere a colpo d'occhio. –
@Joel: hai ragione. Rimango con la versione originale. – ArjunShankar