and - ¿Cómo rompo un bucle externo desde uno interno en Perl?
time in perl (2)
La sintaxis de "última ETIQUETA" se describe en la documentación .
Supongamos que tengo un fragmento de código Perl como:
foreach my $x (@x) {
foreach my $y (@z) {
foreach my $z (@z) {
if (something()) {
# I want to break free!
}
# do stuff
}
# do stuff
}
# do stuff
}
Si something()
es verdadero, me gustaría romper (''durar'') todos los bucles.
¿Cómo puedo hacer eso? Pensé en dos opciones, ambas cosas que no me gustan: Usar algo GOTO
Agregar una variable booleana que marcará que something()
es verdadero, compruebe esta var en cada uno de los bucles antes de que se reanuden y last()
si es verdadero.
Alguna sugerencia o pensamiento?
Gracias.
Usa una etiqueta:
OUTER:
foreach my $x (@x) {
foreach my $y (@z) {
foreach my $z (@z) {
if (something()) {
last OUTER;
}
# do stuff
}
# do stuff
}
# do stuff
}