mixin
とmixin::with
モジュールの違いがわかりません。
package Dog;
sub speak { print "Bark!\n" }
sub new { my $class = shift; bless {}, $class }
package Dog::Small;
use base 'Dog';
sub speak { print "Yip!\n"; }
package Dog::Retriever;
use mixin::with 'Dog';
sub fetch { print "Get your own stinking $_[1]\n" }
package Dog::Small::Retriever;
use base 'Dog::Small';
use mixin 'Dog::Retriever';
my $small_retriever = Dog::Small::Retriever->new;
$small_retriever->speak; # Yip!
$small_retriever->fetch('ball'); # Get your own stinking ball
上記のコードでは、次のコードを使用できます。
package Dog::Small::Retriever;
use base 'Dog::Small';
use mixin 'Dog::Retriever';
次のものに置き換えられますか?
package Dog::Small::Retriever;
#use base 'Dog::Small';
use mixin:with 'Dog::Retriever';