的上關於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