xxx*_*xxx 6 methods perl runtime moose
是否可以在运行时替换Moose对象的方法?通过查看Class::MOP::Method
(Moose::Meta::Method
继承自)的源代码,我得出结论
$method->{body} = sub{ my stuff }
Run Code Online (Sandbox Code Playgroud)
我可以在运行时替换对象的方法.我可以使用该方法
$object->meta->find_method_by_name(<method_name>);
Run Code Online (Sandbox Code Playgroud)
但是,这并没有完全奏效.
是否可以在运行时修改方法?而且,与Moose一起做的方法是什么?
不管是不是驼鹿,这听起来都不是一个好主意。
相反,将您的对象设计为具有该方法的访问器。例如,您的类的用户可以使用 My::Frobnicator->frobnicator->()
来获取和调用该frobnicator
方法并使用My::Frobnicator->frobnicator(sub { } )
来设置它。