У меня есть следующие пять лосей атрибуты:Как создать кучу атрибутов в Moose?
has ['summary_file', 'html_file', 'url1', 'url2', 'txt_file'] => (
is => 'rw',
isa => 'Str',
required => 0,
lazy => 1,
default => sub { confess "Attribute not set"; },
);
Я хотел бы:
- Пусть каждый из них использует свой собственный конструктор (например, набор
'summary_file'
использование_build_summary_file
и т.д.) - Марка значение по умолчанию
confess
, состояние которого (неинициализированный) было вызвано (например,"Attribute 'summary_file' not set"
).
Я могу выполнить вышеуказанное, написав пять отдельных has
, но, возможно, есть более компактный способ?
Или просто объявите их lazy_build, по умолчанию используется _build_ $ accessor. – Oesor
@Oesor: в этом случае вы также получите публичный предикат и более четкий, что часто нежелательно. – Ether
в соответствии с документом 'lazy_build' также устанавливает' required' значение true. что это значит? –