$|++; my $href = { one => 1, two => 2 }; print "\nBefore:\n"; print Dumper($href); set_element($href); print "\nset_element:\n"; print Dumper($href); assign_new_href($href); print "\nAttempt to assign new hashref:\n"; print Dumper($href); ########## sub assign_new_href { my $href = shift; $href = { new_key => 4 } ; } ########## sub set_element { my $href = shift; $href->{baz} = 4; } #### Before: $VAR1 = { 'one' => 1, 'two' => 2 }; set_element: $VAR1 = { 'baz' => 4, 'one' => 1, 'two' => 2 }; Attempt to assign new hashref: $VAR1 = { 'baz' => 4, 'one' => 1, 'two' => 2 };