Class::Accessor::Chained is a Perl module to make chained accessors.
use base qw( Class::Accessor::Chained );
__PACKAGE__->mk_accessors(qw( foo bar baz ));
my $foo = Foo->new->foo(1)->bar(2)->baz(4);
print $foo->bar; # prints 2
A chained accessor is one that always returns the object when called with parameters (to set), and the value of the field when called with no arguments.
This module subclasses Class::Accessor in order to provide the same mk_accessors interface.