Я хочу заменить некоторые хэши, используемые в моей программе, ленивыми объектами Moose по соображениям производительности. Проблема в том, что есть много кода, который я не контролирую, который, конечно же, использует ->{key}
для доступа к элементам. Такой доступ работает с объектами Moose, но не работает с ленивыми до их инициализации:
package Stuff;
use Moose;
has foo => (
lazy=>1,
default=> sub { +{bar=>baz} }
);
package main;
my $x = Stuff->new();
print Dumper $x->{foo}; # undef =(
print Dumper $x->foo; # {bar => baz }
print Dumper $x->{foo}; # {bar => baz }
Есть ли способ сделать этот первый $x->{foo}
инициализирующим переменную?