Name
Mo::build - Adds the build feature to Mo
Synopsis
Description
Adds the BUILD
feature to Mo when imported.
If a sub called BUILD
exists on the package, it will be executed on $self
during instantiation.
Any non-lazy default
and builder
attributes, as well as any value passed to new
will already be set when BUILD
is called.
package
ABCD;
has
a
=> (
default
=> 1234,
lazy
=> 0);
has
b
=> (
builder
=>
'_b'
,
lazy
=> 0);
has
c
=> (
is
=>
'rw'
);
has
d
=> (
is
=>
'rw'
);
sub
_b {
'blue'
}
sub
BUILD {
my
(
$self
) =
@_
;
say
$self
->{a};
say
$self
->{b};
say
$self
->{c};
say
'undef'
unless
defined
$self
->{d};
}
ABCD->new(
c
=>
'days'
)
# => 1234
# blue
# days
# undef