has 'container' => ( traits => ['Array'], is => 'rw', isa => 'ArrayRef', lazy_build => 1, handles => { get_by_id => 'get', }, ); sub _build_container { return [ 'w', 1 .. 145 ]; } has 'color' => ( is => 'rw', isa => 'Str', lazy_build => 1, trigger => sub { $_[0]->container->[0] = $_[1] }, ); sub _build_color { return shift->get_by_id(0) || 'w'; } has 'counter' => ( traits => ['Counter'], is => 'rw', isa => 'Num', lazy_build => 1, handles => { inc_counter => 'inc', dec_counter => 'dec', reset_counter => 'reset', }, trigger => sub { $_[0]->container->[145] = $_[1] }, ); sub _build_counter { return shift->get_by_id( 145 ) || 1; }