hash-trait.pl
package MyClass;
use Moose;
has foo => (
is => 'ro',
isa => 'HashRef',
traits => ['Hash'],
lazy_build => 1,
handles => {
get_foo_keys => 'keys',
find_foo_value => 'get',
},
);
sub _build_foo {
return {
a => 1,
b => 2,
};
}
package main;
use feature qw/say/;
my $obj = MyClass->new;
say join ',', keys %{ $obj->foo };
say join ',', $obj->get_foo_keys;
say 'b=', $obj->find_foo_value('b');