我打電話的方法如下:
$self->class->method
我想傳遞給該方法的引用作爲參數傳入的子程序。
我已經試過
\&{ $self->class->method }
,但我得到了以下錯誤:
Unable to create sub named ""
如何做到這一點任何想法?
我打電話的方法如下:
$self->class->method
我想傳遞給該方法的引用作爲參數傳入的子程序。
我已經試過
\&{ $self->class->method }
,但我得到了以下錯誤:
Unable to create sub named ""
如何做到這一點任何想法?
您可以採取的靜態類方法的引用,但在你的情況下,你可以使用匿名閉包來實現類似,
my $ref = sub { $self->class->method };
# ..
my $result = $ref->();
的class
方法是有些奇怪。我希望有一個像這樣的名字返回類字符串的方法,但它顯然返回一個對象,因爲它有一個方法method
。
我建議您使用UNIVERSAL::can
,它返回給定方法的引用(如果存在)。所以,你可以這樣寫
my $method_ref = $self->class->can('method');
mysub($method_ref);
代碼,您還可以使用curry
模塊來實現這一目標:
use curry;
my $mref = $self->class->curry::method;