純粋仮想メソッドは、Perlのような動的言語ならば特別の工夫はいらず、以下のようにいきなり呼べばいいですね。 #!perl -w use 5.14.0; package ScopedReporterBase { use Mouse; has name => (is => 'ro'); sub DESTROY { my($self) = @_; # report()は純粋仮想メソッド $self->report(); } } package ScopedReporter { use Mouse; extends 'ScopedReporterBase'; # 純粋仮想メソッドを実装する sub report { my($self) = @_; say "Hello, ", $self->name; } } { my $r = ScopedReporter->new(name => 'Foo'