#!/usr/bin/perl use warnings; use strict; use feature qw{ say }; { package My::Object; use Moose; has keys => ( is => 'ro', traits => ['Array'], handles => { add_keys => 'push', get_keys => 'elements' } ); __PACKAGE__->meta->make_immutable; } my $o = 'My::Object'->new; $o->add_keys('abc', 'def'); say for $o->get_keys;