Попробуйте
# hash ref, key 'family' pointing to scalar
print $_->{family}, "\n";
# hash ref, key 'roles' pointing to hash ref,
# key 'members' pointing to array ref
print @{ $_->{roles}->{member} }, "\n";
Ваша ссылка на хеш-код интерполирована в строку, поэтому HASH(...)
.
Полный пример кода на основе вашего кода:
#!/usr/bin/perl
use strict;
use warnings;
my $array = [
{
family => "abc",
roles => {},
},
{
family => "def",
roles => {
member => ["1234"],
},
},
];
for my $hash_ref (@{ $array }) {
print "family ", $hash_ref->{family}, "\n";
while (my($key, $value) = each %{ $hash_ref->{roles} }) {
print "role '${key}' @{ $value }\n";
}
}
exit 0;
Тестовый прогон
$ perl dummy.pl
family abc
family def
role 'member' 1234