Creo que el uso de etiquetas dentro de las subrutinas Perl, para romper múltiples bucles, o para rehacer algunas partes con variables actualizadas, es muy útil. ¿Cómo es visto este estilo de codificación por la comunidad? Está usando etiquetas dentro de subrutinas mal vistas?¿Está utilizando las etiquetas en las subrutinas de Perl como una mala práctica?
Respuesta
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.
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
.
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;
}
}
- 1. ¿Está utilizando etiquetas en mala práctica de JavaScript?
- 2. ¿Cómo puedo alinear las subrutinas de Perl?
- 3. ¿Cómo funciona @_ en las subrutinas Perl?
- 4. ¿Está utilizando "NO EXISTE" una mala práctica de SQL?
- 5. ¿Está utilizando miembros de matriz flexibles en C mala práctica?
- 6. ¿Está utilizando las propiedades get set de C# como una buena práctica?
- 7. ¿Está utilizando una instancia de una clase para acceder a métodos estáticos considerados como mala práctica?
- 8. ¿Está utilizando el almacenamiento en búfer de salida como una mala práctica?
- 9. Valores de argumento predeterminados en las subrutinas
- 10. ¿Cómo heredo las subrutinas en Perl con 'base de uso'?
- 11. iPhone, ¿está utilizando isKindOfClass como una mala práctica de alguna manera?
- 12. ¿Cuáles son los usos de las subrutinas lvalue en Perl?
- 13. ¿Cómo debo definir las subrutinas 'estáticas' en Perl?
- 14. ¿Es una mala práctica usar las características C en C++?
- 15. ¿Las funciones anónimas son una mala práctica en JavaScript?
- 16. ¿Está usando char como bool en C mala práctica?
- 17. Subrutinas anidadas y Scoping en Perl
- 18. gcc: ¿Está utilizando -Werror y -pedantic como una buena práctica?
- 19. ¿Es la interfaz como etiquetas una mala práctica en Java OO?
- 20. ¿Cómo puedo usar los hashes como argumentos para las subrutinas en Perl?
- 21. Está usando una mala práctica "fuera de servicio"
- 22. ¿Cómo puedo usar los hashes como argumentos para las subrutinas en Perl?
- 23. ¿Está intentando atrapar en una mala práctica de la vista?
- 24. ¿Se está utilizando una mala práctica "básica" aunque podría ser buena para la legibilidad?
- 25. está usando el acceso directo $() en jQuery mala práctica?
- 26. ¿Debo llamar a las subrutinas Perl sin argumentos como marine() o marine?
- 27. ¿Está comprobando las excepciones en el código o utilizando try-catch una práctica mejor en Java?
- 28. es @unlink una mala práctica?
- 29. ¿Es una mala práctica usar el módulo requireJS como singleton?
- 30. ¿Las propiedades de configuración en el objeto Window se consideran una mala práctica?
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
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
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