Name |
Mo::option - Allow an attribute to be a chainable, boolean option.
package Foo;
use Mo qw'option'; has this => ( option => 1 ); has that => ( option => 1 );
my $f = Foo->new; $f->this->that(0)->do_something;
my $this = $f->read_this; # 1 my $that = $f->read_that; # 0
$f->do_something if $f->read_this;
This feature lets an accessor act as an option, that is intended to have a value of 1 or 0. Simply calling the accessor sets the value to 1, and returns the instance so you can chain to the next method.
To get the value of the attribute, call the ``read_<name>'' accessor. Here's a trick to do that when you are not assigning the value to anything:
Name |