- deep copy
 
Deep copy
examples/references/deep_copy.pl
#!/usr/bin/perl use strict; use warnings; use Data::Dumper qw(Dumper); my $ini = { 'name' => { Foo => 123, Bar => 456, } }; my $other_ini = { %{ $ini } }; print "$ini->{name}{Foo}\n"; # 123 print "$other_ini->{name}{Foo}\n"; # 123 $ini->{phone}{Baz} = 678; print "$ini->{phone}{Baz}\n"; # 678 print "$other_ini->{phone}{Baz}\n"; # undef as expected print Dumper $ini, $other_ini; $ini->{name}{Foo} = 999; print "$ini->{name}{Foo}\n"; # 999 print "$other_ini->{name}{Foo}\n"; # 999 !!!! print Dumper $ini, $other_ini;
123
123
678
$VAR1 = {
          'name' => {
                      'Bar' => 456,
                      'Foo' => 123
                    },
          'phone' => {
                       'Baz' => 678
                     }
        };
$VAR2 = {
          'name' => $VAR1->{'name'},
          'phone' => {}
        };
999
999
$VAR1 = {
          'name' => {
                      'Bar' => 456,
                      'Foo' => 999
                    },
          'phone' => {
                       'Baz' => 678
                     }
        };
$VAR2 = {
          'name' => $VAR1->{'name'},
          'phone' => {}
        };