c:\@Work\Perl>perl -wMstrict -MData::Dumper -le "my $hash = {}; print 'Ma: ', $hash; ;; do_something($hash); ;; print 'Mb: ', $hash; print Dumper($hash); ;; sub do_something { print 'Sa: ', $_[0]; ;; $_[0] = { a => 'alpha', b => 'beta', }; print 'Sb: ', $_[0]; print Dumper( $_[0] ); } " Ma: HASH(0x92d06c) Sa: HASH(0x92d06c) Sb: HASH(0x92d16c) $VAR1 = { 'a' => 'alpha', 'b' => 'beta' }; Mb: HASH(0x92d16c) $VAR1 = { 'a' => 'alpha', 'b' => 'beta' };