Я хочу заменить некоторые хеши, используемые в моей программе, с ленивыми объектами Муха по соображениям производительности. Проблема в том, что есть много кода, который я не контролирую, который использует, конечно, ->{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}
инициализировать переменную?
https://metacpan.org/pod/Tie::Moose кажется полезным, возможно, – AKHolland
@AKHolland лото! Позаботьтесь, чтобы ответить на него, чтобы я согласился? – letitbee
Изменен в форме ответа. Рад помочь. – AKHolland