$ perl -wle'my $x = $hash{test_elem}; print keys %hash' #### $ perl -wle'my $r = \$hash{test_elem}; print keys %hash; print defined($hash{test_elem})?1:0;' test_elem 0 $ perl -wle'1 for $hash{test_elem}; print keys %hash; print defined($hash{test_elem})?1:0;' test_elem 0 #### $ perl -wle'sub {}->($hash{test_elem}); print keys %hash' $ perl -wle'sub { $_[0]=1; }->($hash{test_elem}); print keys %hash' test_elem #### $ perl -wle'my $r; $r->{x}; print $r;' Useless use of hash element in void context at -e line 1. HASH(0x816c158)