Mo::builder - Adds the builder feature to Mo's has
use Mo qw'builder';
has name => ( builder => 'name_lookup' );
sub name_lookup {
my ($self) = @_;
...
}
Adds the "builder" parameter to has, which
expects a method name, which is executed on $self to
set the attribute if it hasn't been set yet.
Builders in Mo are lazy by default. This can be changed by explicitly setting
the "lazy" argument to false, in order to
cause it to be initialized during instantiation.
use Mo qw'builder';
has status => ( builder => '_build_status' ); # lazy
has source => ( builder => '_build_source', lazy => 1); # lazy
has target => ( builder => '_build_target', lazy => 0); # eager
To change the default behavior and make builders to be initialized
eagerly by default, import "nonlazy".
use Mo qw'builder nonlazy';
has status => ( builder => '_build_status' ); # eager
has source => ( builder => '_build_source', lazy => 1); # lazy
has target => ( builder => '_build_target', lazy => 0); # eager