in reply to Complex data structure

print $hash{"keya"}->[2][1];

First you get to the first level array by using hash key; Secondly, that second level array ref is the 2nd element of the first level array (0-based); Eventually, use the index in the second level array to access each element in it.

By the way, use Data::Dumper to peek into the structure, then no data structure is complex any more. To use it:

use Data::Dumper; ... print Dumper(\%hash);
It is also fine to say:
print Dumper(%hash);
But personally I don't like it, as visually you lose the feeling that you are displaying a hash.