使用Moo::Role
,我发现循环导入正在默默地阻止执行before
我的方法的修饰符.
我有一个Moo::Role
在MyRole.pm
:
package MyRole;
use Moo::Role;
use MyB;
requires 'the_method';
before the_method => sub { die 'This has been correctly executed'; };
1;
Run Code Online (Sandbox Code Playgroud)
......消费者MyA.pm
:
package MyA;
use Moo;
with ( 'MyRole' );
sub the_method { die; }
1;
Run Code Online (Sandbox Code Playgroud)
..另一个在MyB.pm
:
package MyB;
use Moo;
with ( 'MyRole' );
sub the_method { die 'The code should have died before this point'; }
1;
Run Code Online (Sandbox Code Playgroud)
当我运行这个script.pl
:
#!/usr/bin/env perl
package main; …
Run Code Online (Sandbox Code Playgroud)