SYNOPSIS

package Test;
use Moose;

has => 'debug' => (
    traits => [ 'Chained' ],
    is => 'rw',
    isa => 'Bool',
);

sub complex_method
{
    my $self = shift;
    
    #...
    
    print "helper message" if $self->debug;
    
    #...
}


1;

Which allows for:

my $test = Test->new();
$test->debug(1)->complex_method();

DESCRIPTION

MooseX::ChainedAccessors is a Moose Trait which allows for method chaining on accessors by returning $self on write/set operations.