Поскольку метод decode
фактически возвращает ссылку на хеш, правильный способ присвоения будет:
%perl = %{ $coder->decode ($json) };
Тем не менее, чтобы получить данные из хэша, вы можете использовать встроенный каждый или циклически перебирать его ключи и извлекать значения путем подписки.
while (my ($key, $value) = each %perl) {
print "$key = $value\n";
}
for my $key (keys %perl) {
print "$key = $perl{$key}\n";
}