以下是有关Moose
最佳实践的常见建议:
“使用namespace::autoclean
位只是出于代码卫生,因为它在包的编译周期结束时从类的名称空间中删除了导入的符号,包括Moose
关键字。一旦构建了类,就不需要这些关键字了。 (最好将no Moose
放在包装的末尾)。”
为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/