1
次のコードのように、PerlクロージャをMooアクセサに変換しようとしています。残念ながら、コードはMooseで動作しますが、Mooでは例外がスローされます。動的に生成されたPerl Moo
私は、Perlクロージャで定義された読み書きアクセッサを使ってムーコードを書くのを手伝ってください。(単純な値を読み込んで保存するデフォルトのアクセッサではなく、クロージャを呼び出すアクセッサの読み書きです。
#!/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";
./test2.pl行の初期化されていない値の使用27. – porton
クールで、うまくいったようです。あなたが実際に価値を与えたなら、あなたはもっときれいなものを手に入れます。更新しました。 – ikegami