我希望在我的类中应用Moose“before”方法修饰符到多个方法中。我想在一个角色中提供修饰方法。可以像这样实现:
package MyApp::Role;
use Moose::Role
before [qw(foo bar)] => sub {
...
};
package MyApp;
use Moose;
with (MyApp::Role);
sub foo { ... }
sub bar { ... }
sub baz { ... } # this method is unaffected
然而,必须在角色中维护相关方法列表,这使其与使用类相关联,这似乎是错误的。我希望以更智能的方式来做,例如使用方法属性:
package MyApp;
use Moose;
with (MyApp::Role);
sub foo :SomeFlag { ... }
sub bar :SomeFlag { ... }
sub baz { ... } # this method is unaffected
我不熟悉如何识别方法属性,也不知道如何动态地应用方法修饰符。
或者,也许有更好的方法吗?