Una recomendación a menudo visto en las mejores prácticas en materia de Moose
es la siguiente:¿Por qué se prefiere "use namespace :: autoclean" a "no Moose"?
"El poco uso
namespace::autoclean
es simplemente una buena higiene de código, ya que elimina los símbolos de espacio de nombres de la clase importada al final del ciclo de compilación de su paquete, incluidas las palabras claveMoose
. Una vez que la clase ha sido creada, estas palabras clave no son necesarias. (Esto es preferible a colocarno Moose
al final de su paquete). "
Tomado por Moose::Manual::BestPractices (énfasis mío).
entiendo todo lo relacionado con la cita anterior, excepto por una cosa: ¿por qué es el uso de namespace::autoclean
preferían el uso de no Moose
al final del ámbito léxico?
¿Es sólo porque namespace::autoclean
es más versátil, lo que permite más opciones en su uso, o hay algo intrínseco a la forma en que se llevó a cabo (especialmente adaptados para Moose
clases, tal vez) que hace que sea más fiable?
No encontré documentación que aclare esto, y me gustaría saber la respuesta correcta.
'namespace :: autoclean' también romperá su código si planea usar sobrecargas al mismo tiempo. Para ese caso, es posible que desee probar 'namespace :: sweep'. – friedo
Actual 'namespace :: autoclean' (v0.28, oct 2015) documentación [estados] (http://stackoverflow.com/questions/9559064/why-is-use-namespaceautoclean-preferred-to-no-moose) que "los subs mágicos instalados por sobrecarga no se limpiarán". –