Sin conocer realmente a Perl, he mejorado un script de Perl con la ayuda de un motor de búsqueda amigable.¿Hay una manera más limpia de "durar" condicionalmente este bucle de Perl?
Me parece que necesito para salir de un bucle while establecer un indicador si una condición se cumple:
foreach my $element (@array) {
if($costlyCondition) {
$flag = 1;
last;
}
}
sé que la manera más agradable de utilizar 'última' es algo como esto:
foreach my $element (@array) {
last if ($costlyCondition);
}
Por supuesto, esto significa que si bien puedo disfrutar el azúcar sintáctico, no puedo establecer mi bandera dentro del ciclo, lo que significa que necesito evaluar $costlyCondition
una vez más afuera.
¿Hay alguna manera más clara de hacerlo?
postfix 'if' en realidad solo es para una afirmación. El primero es preferible para múltiples declaraciones en un condicional. –
Creo que un bloque if es la mejor opción en este caso. El argumento habitual para los condicionales de postfix en los controles de bucle es que coloca el código más significativo a la izquierda. Haciendo hincapié en que el ciclo tiene múltiples condiciones de salida sobre cuáles son esas condiciones de salida. En este caso, si usa algunas de las expresiones compuestas sugeridas, el resultado entierra el control de bucle más profundo en la expresión, lo que hace que sea más difícil verlo de un vistazo. –
@Joel: tienes razón. Me quedo con la versión original. – ArjunShankar