我需要multemethod調度與駝鹿對象。我正在用Class::Multimethods::Pure這樣做。我選擇了這個而不是MooseX::MultiMethods,因爲它取決於MooseX::Method::Signatures,它不能在我的系統上安裝,因爲它未通過測試。我不介意你是否有其他方法可以提出建議。如何擴展Class :: Multimethods :: Pure來識別駝鹿角色?
罰款型和亞型以下工作:
package Foo::Type;
use Moose;
package Foo::SubType;
use Moose;
extends 'Foo::Type';
package main;
use Class::Multimethods::Pure;
multi hello => ('Foo::Type') => sub {
my ($foo) = @_;
print $foo;
};
hello(Foo::SubType->new);
不過問題我現在需要處理的就是聲明的類型實際上是一個木角色:
package Foo::Role;
use Moose::Role;
package Foo::Type;
use Moose;
with 'Foo::Role';
package main;
use Class::Multimethods::Pure;
multi hello => ('Foo') => sub {
my ($foo) = @_;
print $foo;
};
hello(Foo::Type->new);
但可以」 t認識到角色:
No method found for args (Foo::Type=HASH(0x22ac854))
documentation說它可以擴展d以各種方式,包括添加Perl 6-ish角色。但對我來說有些粗略,我正在尋找更詳細的示例。有沒有人試過這個?