Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Mo::default(3)	      User Contributed Perl Documentation	Mo::default(3)

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 => {};

Laziness
       Default attribute values	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'default';
	   has status	=> 'active';		     # lazy
	   has location	=> sub { ... },	lazy =>	1;   # lazy
	   has target	=> sub { ... },	lazy =>	0;   # eager

       To change the default behavior and make attributes to be	initialized
       eagerly by default, import "nonlazy".

	   use Mo qw'default nonlazy';
	   has status	=> 'active';		     # eager
	   has location	=> sub { ... },	lazy =>	1;   # lazy
	   has target	=> sub { ... },	lazy =>	0;   # eager

perl v5.24.1			  2016-07-06			Mo::default(3)

Name | Synopsis | Description | Laziness

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Mo::default&sektion=3&manpath=FreeBSD+12.0-RELEASE+and+Ports>

home | help