in reply to array refernce as hash value
It's possible, but it's not doing what you think it is (as use warnings will show you).
$ perl -Mwarnings -e '%h = { foo => [ 1 .. 3] }' Reference found where even-sized list expected at -e line 1.
You have the wrong kind of brackets. You want:
my %hash = ( key1 => [a1_ref,a1_ref], key2 => [a3_ref,a4_ref] );
Having created your data structure, Data::Dumper will be invaluable for exploring it and perldsc is full of information about how to get values out of it.
In Section
Seekers of Perl Wisdom