Документация Moose указывает, что свойство атрибута в классе definiton должно быть строкой, содержащей имя для функции, которая будет вызываться для создания соответствующего атрибута. Однако простое тестирование показывает, что подзадача также работает:Использование вспомогательной ссылки с Moose builder
has 'some_attribute' => (
is => 'ro',
lazy => 1,
builder => sub {
require SomeModule::Heavy;
return SomeModule::Heavy->new($_[0]);
},
);
Я что-то пропустил в документах? Является ли использование ссылочной ссылки официально поддерживаемой для builder
?
Раздел в документах, указывающий, что строители вызываются по имени, находится в https://metacpan.org/pod/distribution/Moose/lib/Moose/Manual/Attributes.pod#Builders-allow-subclassing –