的上关于Moose
最佳实践经常看到的建议如下:为什么“use namespace :: autoclean”首选为“no Moose”?
“使用
namespace::autoclean
位就是良好的代码卫生,因为它消除了在你的包的编译周期结束进口从你的类的命名空间的符号,包括Moose
关键字,一旦建立了类,这些关键字就不需要了。(这是将no Moose
放置在包的末尾的优选方案)。
采取Moose::Manual::BestPractices(强调我的)。
我明白了上面关于报价的一切,除了一两件事:为什么是利用namespace::autoclean
在词法范围的结束首选使用no Moose
?
仅仅是因为namespace::autoclean
更通用,允许使用更多选项,或者是否存在实现方式的内在特性(可能专门为Moose
类定制),使其更加可靠?
我发现没有文件澄清这一点,我很想知道正确的答案。
'namespace :: autoclean'也会打破你的代码,如果你打算同时使用重载。对于这种情况,你可能想尝试'namespace :: sweep'。 – friedo 2012-03-05 00:56:17
当前'namespace :: autoclean'(v0.28,2015年10月)文档[states](http://stackoverflow.com/questions/9559064/why-is-use-namespaceautoclean-preferred-to-no-moose) “超载安装的魔术师将无法清理”。 – 2016-05-24 04:05:52