私は次の5つのムース属性を持っている: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
を設定)してください - メイク(初期化されていない)属性が呼び出されたサブ状態(例:
"Attribute 'summary_file' not set"
)。
私は5つの別々のhas
を書いて上記を達成できますが、もっとコンパクトな方法がありますか?あなたは(あなたが以下のコメントを「動作しない」の後に、新たな実施例)を、次のような何かを行うことができ
または、lazy_buildを宣言するだけです。デフォルトは_build_ $ accessorです。 – Oesor
@Oesor:その場合、あなたは公式の述語を取得し、より明確になりますが、これはしばしば望ましくありません。ドキュメント 'lazy_build'による – Ether
も' required'をtrueに設定します。これは何を意味するのでしょうか? –