【发布时间】:2011-02-02 01:57:36
【问题描述】:
我正在尝试弄清楚如何使用 Moose 获取方法代码参考。
以下是我正在尝试做的示例:
use Modern::Perl;
package Storage;
use Moose;
sub batch_store {
my ($self, $data) = @_;
... store $data ...
}
package Parser;
use Moose;
has 'generic_batch_store' => ( isa => 'CodeRef' );
sub parse {
my $self = shift;
my @buf;
... incredibly complex parsing code ...
$self->generic_batch_store(\@buf);
}
package main;
$s = Storage->new;
$p = Parser->new;
$p->generic_batch_store(\&{$s->batch_store});
$p->parse;
exit;
【问题讨论】:
-
您的代码正在调用批处理存储方法,然后尝试断言返回值是代码引用。有关如何创建将调用您的方法的代码引用,请参阅上面的链接问题。