In neither of your examples are you using a reference. Try something more like:
use strict;
use warnings;
my %hash = (foo => 1, bar => 2,);
# pass reference to subroutine
test(\%hash);
########## SUB #########
sub test{
my $reference = shift; # reference is passed in @_
print "REF: $reference\n";
print "KEY: " . $_ . " VAL: " . $reference->{$_} . "\n" for (keys
+%$reference);
}
Check out perlref and References quick reference for more info on references and dereferencing! HTH!
Just a something something...