次のコードのように、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";