以下是有关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/

10-13 06:22