# Change this line from your first snippet... # my %testHash = ( \@multiKey1 => \@stuff1, \@multiKey2 => \@stuff2, \@multiKey3 => \@stuff3); # into this: my %testHash = ( \@multiKey1, \@stuff1, \@multiKey2, \@stuff2, \@multiKey3, \@stuff3); # ... and still use this: use Data::Dumper; print Dumper \%testHash; # And run the code.