看Mouse源代码的过程中发现perl一个很有意思的地方,可以非常方便的动态更新一个已有模块的方法或者变量,而且这个方法存在于很多其他模块中,尤其是Exporter。
Example:
{
package Data::Dumper;
sub test{
print "testing in new\n";
}
}
use Data::Dumper;
Data::Dumper::test;
print Dumper \%Data::Dumper::
本来Data::Dumper模块不存在一个方法test,我们动态给他加了这个方法并调用,类似的我们也可以给他一个变量并调用。
最后观察Dumper的结果,所有的更新都已存在于模块的符号表中。
Example:
{
package Data::Dumper;
sub test{
print "testing in new\n";
}
}
use Data::Dumper;
Data::Dumper::test;
print Dumper \%Data::Dumper::
本来Data::Dumper模块不存在一个方法test,我们动态给他加了这个方法并调用,类似的我们也可以给他一个变量并调用。
最后观察Dumper的结果,所有的更新都已存在于模块的符号表中。