I’m using Moose to write an object module.
I currently have a few mandatory fields:
has 'length' => ( is => 'ro', isa => 'Int', required => 1, ); has 'is_verified' => ( is => 'ro', isa => 'Bool', required => 1, ); has 'url' => ( is => 'ro', isa => 'Str', required => 1, );
After the object was initialized with those fields, I would like to create some structure and use it from the object methods.
how (where) should I do that?
There are (at least) two possibilities:
You can create a
BUILDsub. It gets called automatically after the object is initialized.
You create a normal attribute and mark it lazy. Then you provide a sub that creates this attribute: either
default. You can read more about this in the manual.