Package Wibble; use Moose; has 'thingies' => ( is => 'rw', isa => 'ArrayRef' ); Package main; use Wibble; use Moose::Autobox; my $w = Wibble->new( thingies => [ 'this', 'that' ]); print join(", ",$w->thingies())."\n"; # prints "this, that" # here's the bit that I want to make work $w->thingies->push('another'); print join(", ",$w->thingies())."\n"; # prints "this, that, another"