Странно, у меня не воспроизводится. perl 5.14.2> print @{ $hash_ref->{'VAL1'} };
Пример работает нормально. Дайте больше кода.
> а так норм:
>
> @array = keys $hash_ref;
> $index = 1;
> print @{ $hash_ref->{ $array[$index] } };
>
> и даже так:
>
> print @{ $hash_ref->{ each $hash_ref } };
>
Как раз и не норм. keys и each возвращают ключи в случайном порядке, и какой из них будет VAL1, можно только гадать.
Кстати, а что говорит print keys %$hash_ref?
PS. keys/each $hash_ref я не стал бы использовать, потому что это экспериментальная возможность и не работает до версии 5.14