use Data::Dumper; my $this={name=>'alex',array=>['one','two']}; my $that=eval Dumper $this; $that->{name}='Ido'; print $this->{name}; #alex - not affected $that->{array}[0]='three'; print $this->{array}[0];#one - not affected