my $this = { 'name' => 'alex' }; my $that = \%{ $this }; # now i thought that $that would be an independent copy, but: $that->{'name'} = 'madonna'; print $this->{'name'}; # oh no! i'm madonna! they both referenced the same thing #### my $this = { 'name' => 'alex' }; my %that = %{ $this }; my $that = \%that; # now $that really is an independent copy, and: $that->{'name'} = 'madonna'; print $this->{'name'}; #alex # phew! I'm still me!