2009-10-28 11 views

Respuesta

17

No. Sirven exactamente para el propósito de su descripción y los considero una buena característica del lenguaje que se usa muy poco.

Por otro lado, cada vez que me pongo a pensar en el uso de una etiqueta, también me pregunto si mi código necesita un poco de refactorización.

+1

En la mayoría de los casos, creo que el código es más clara con el uso de etiquetas. Al volver a escribir el código para que ya no los use, generalmente se generan muchas líneas de código adicional. – Geo

+2

A veces sucede, otras veces no. Siempre busco el código que sea más fácil de leer y entender. A veces ese es el código que usa etiquetas. – innaM

+2

Perl Best Practices está a favor de las etiquetas. No estoy de acuerdo con todo el PBP, pero creo que este es uno de sus buenos consejos. Sirven como documentación si nada más. – hobbs

12

Usar etiquetas con next, last y redo está bien, pero debe detenerse para considerar si la estructura del código es la mejor. En mi experiencia, rara vez necesita usar estos operadores en otro lugar que no sea el bucle adjunto (lo que significa que no necesita usar una etiqueta).

Se desaconseja utilizar goto LABEL.

8

Generalmente no hay ninguna razón para usar goto LABEL.

Por ejemplo:

my $i = 10; 
Label: 
# ... 
goto Label if --$i; 

es mejor escribir como:

my $i = 10; 
{ 
    # ... 
    redo if --$i; 
} 

La única razón que puedo pensar en utilizar una etiqueta, es para salir de múltiples bucles, o para continuar un bucle externo.

my $i = 10; 
OUTER: while(1){ 
    # ... 
    while(1){ 
    # ... 
    last OUTER unless --$i; 
    } 
} 
my $i = 10; 
OUTER: { 
    # ... 
    { 
    # ... 
    redo OUTER if --$i; 
    } 
} 
Cuestiones relacionadas