我尝试将 Perl 闭包转换为 Moo 访问器,如下面的代码所示。不幸的是,该代码适用于 Moose,但会引发 Moo 异常。
请帮助我使用 Perl 闭包定义的读写访问器编写 Moo 代码(不是仅读取和存储简单值的默认访问器,而是应该调用我的闭包的读写访问器)。
#!/usr/bin/perl
package X;
use Moo;
my $BusinessClass = "X";
my $Key = 'zz';
no strict 'refs';
*{"${BusinessClass}::access_$Key"} = sub { "Modified $Key" };
has $Key => ( is => 'rw',
required => 0,
accessor => { $Key => \&{"${BusinessClass}::access_$Key"} },
# predicate => { "has_$Key",\&{"${BusinessClass}::access2_$Key"} },
);
my $obj = X->new;
print $obj->zz, "\n";