それらをサブクラスに追加したり、役割に混ぜたりできるのは素晴らしいことです。私の問題は、サブクラスがメソッド自体(修飾子ではなく)を再定義すると、基本クラスのメソッド修飾子が非アクティブになるように見えることです。メソッド修飾子の理解が間違っているのかもしれません。例:
use feature 'say';
package Foo;
use Moose;
has called => (is => 'rw', isa => 'Bool', default => 0);
sub call { 'Foo called' }
after call => sub { shift->called(1) };
my $foo = Foo->new();
say $foo->called; # 0
say $foo->call; # Foo called
say $foo->called; # 1
package Bar;
use Moose;
extends 'Foo';
sub call { 'Bar called' }
my $bar = Bar->new();
say $bar->called; # 0
say $bar->call; # Bar called
say $bar->called; # 0
最後の出力は の1
ようになると予想していまし$foo
た。私は何を間違っていますか?