关于 Moose
的最佳实践的常见建议如下:
"The use
namespace::autoclean
bit is simply good code hygiene, as it removes imported symbols from your class's namespace at the end of your package's compile cycle, includingMoose
keywords. Once the class has been built, these keywords are not needed. (This is preferred to placingno Moose
at the end of your package)."
为Moose::Manual::BestPractices (强调我的)。
我了解上述引用的所有内容,除了一件事:为什么要使用
namespace::autoclean
优先使用 no Moose
在词法范围的末尾?是不是因为
namespace::autoclean
更通用,允许更多的使用选项,或者它的实现方式有什么内在的东西(也许是专门为 Moose
类定制的)使它更可靠?我没有找到任何文件来澄清这一点,我很想知道正确的答案。
最佳答案
no Moose
仅删除由 use Moose
导入的那些函数. use namespace::autoclean
摆脱所有导入的功能。
如果你总是使用 namespace::autoclean
, 那么你就不用记得切换 no Moose
至use namespace::autoclean
如果您稍后回来并从某个模块导入功能。否则,您可能会忘记这样做。
关于perl - 为什么 "use namespace::autoclean"比 "no Moose"更受欢迎?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9559064/