MooseX::ChainedAccessors Chained accessors on write operations for Moose. INSTALLATION To install this module, run the following commands: perl ./Makefile.PL make test make install USAGE package MyClass; use Moose; has 'chained_attr' => ( traits => ['Chained'], is => 'rw', isa => 'Str', ); sub my_method { my $self = shift; print 'hello, ' . $self->chained_attr; } 1; MyClass->new->chained_attr('world')->my_method(); # hello, world! Chained accessors also work with explicit 'reader/writer' accessors. package MyClass; use Moose; has 'attr' => ( traits => ['Chained'], is => 'rw', isa => 'Str', reader => 'get_attr', writer => 'set_sttr', ); sub my_method { my $self = shift; print $self->get_attr; } 1l MyClass->new->set_attr('hello, world')->my_method(); # hello, world Hopefully it's obvious why read operations can't be chained. DOCUMENTATION See http://search.cpan.org/dist/Moose/lib/Moose/Cookbook/Meta/Recipe3.pod for documentation on using traits. And also http://www.dmclaughlin.com/2009/05/15/chained-accessors-in-moose/ for the release post.