Я пытаюсь превратить блокировки Perl в аксессоры Moo, как в следующем коде. К сожалению, код работает с Moose, но генерирует исключение с Moo.Perl Moo, динамически создаваемые аксессоры
Пожалуйста, помогите мне написать код 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