是否可以在运行时替换 Moose 对象的方法?
通过查看源代码Class::MOP::Method http://search.cpan.org/perldoc/Class::MOP::Method (which Moose::Meta::Method http://search.cpan.org/perldoc/Moose::Meta::Method继承自)我的结论是,通过这样做
$method->{body} = sub{ my stuff }
我将能够在运行时替换对象的方法。
我可以使用该方法
$object->meta->find_method_by_name(<method_name>);
然而,这并没有完全奏效。
是否可以在运行时修改方法?那么,Moose 有什么方法可以做到这一点呢?
不管是不是驼鹿,这听起来都不是一个好主意。
相反,将您的对象设计为具有该方法的访问器。例如,您班级的用户可以使用My::Frobnicator->frobnicator->()
获取并调用frobnicator
方法及用途My::Frobnicator->frobnicator(sub { } )
来设置它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)