use Data::Dumper; use strict; my %a = (1,2,3,4); my $a_ref = \%a; print "not ref, without ->\n"; print $a{1}, "\n";#good print $a{3}, "\n";#good print "not ref, with ->\n"; print $a->{1}, "\n";#uninitialized print $a->{3}, "\n";#uninitialized print "ref, without ->\n"; #print $a_ref{1}, "\n"; #cannot uncomment #print $a_ref{3}, "\n"; #cannot uncomment print "ref, with ->\n"; print $a_ref->{1}, "\n";#good print $a_ref->{3}, "\n";#good