namespace::clean

namespace::clean这个指令将会在当前包编译完成后清除之前声明的或导入的方法。

当前包自己声明的方法在自己内部可以用,但是这个包所生成的类或实例无法使用。

no namespace::clean;后声明的方法,在下次use namespace::clean;后被清除。

可以使用-except来告诉namespace::clean你不想清除的方法,如果你想-except一个方法,可以直接传入方法名,如果你想-except多个方法,你需要使用数组引用。

例子:

package Foo;
use Moose;
use namespace::clean -except => 'meta';
use namespace::clean -except => [qw( method1 method2 )];

这篇文章: 有用 无用