例を使用すると、より簡単に説明できます。
my $o = SpecialEffects->new( "config" => 'a' );
my $p = SpecialEffects->new( "config" => 'b' );
$o->sound(); # aliased to fizz(); same as $o->fizz()
$p->sound(); # aliased to clonk(); same as $p->clonk()
Perlでこれを行うことは可能ですか?おそらく、typeglobまたはcoderefのトリックを使用していますか?
SpecialEffects
インターフェースをシンプルにしようとしています。オブジェクト階層の構築を開始したくありません。メソッドは公開されているものであり、sound()
その動作のみをわずかに構成できます。
エイリアスを作成できることはすでに知っていますが*sound = \&fizz;
、それは私が知る限りグローバルなことであり、オブジェクトにカプセル化してほしいと思います。