Name
Mo::default - Adds the default feature to Mo's has
Synopsis
use Mo qw'default';
has job => ( default => 'Killer' );
has name => ( default => sub { 'Joe' } );
has age => 42;
has colors => ['green', 'blue'];
Description
Adds the default parameter to has, which expects a value. If the value is a code ref, it is called to produce the default. If the value is a hash or array ref, then a shallow copy is made for the default. If there is an odd number of arguments after the attribute name, then the first value is the default.
These 3 lines are the same:
has things => default => sub {+{}};
has things => default => {};
has things => {};
Currently default
is always applied lazily.