ejemplos and perl loops break flow-control

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 }