package Wibble; use Moose; use MooseX::AttributeHelpers; has 'thingies' => ( metaclass => 'Collection::Array', is => 'ro', isa => 'ArrayRef[Str]', default => sub { [] }, provides => { push => 'add_thingies', elements => 'list_thingies', }, ); #### my $w = Wibble->new( thingies => [ 'this', 'that' ]); print join(", ",$w->list_thingies())."\n"; # prints "this, that" # here's the bit that we just made work $w->add_thingies('another'); print join(", ",$w->list_thingies())."\n"; # prints "this, that, another"