#!/usr/bin/perl -w use strict; use warnings; use Devel::Peek; our $x = 10; print "\$x:\n"; Dump($x); *y = \$x; print "\$main::y:\n"; Dump($main::y); { my $tmp = $x; $x = 20; print "\nIn block with local \$x\n"; print "\$x:\n"; Dump($x); print "\$main::x (just to note that \$x and \$main::x are the same thing):\n"; Dump($main::x); print "\$main::y:\n"; Dump($main::y); $x = $tmp; } print "\nAfter exiting the block with local \$x\n"; print "\$x:\n"; Dump($x); print "\$main::y:\n"; Dump($main::y); #### $x: SV = IV(0x9a32ac0) at 0x9a1775c REFCNT = 1 FLAGS = (IOK,pIOK) IV = 10 $main::y: SV = IV(0x9a32ac0) at 0x9a1775c REFCNT = 2 FLAGS = (IOK,pIOK) IV = 10 In block with local $x $x: SV = IV(0x9a32ac0) at 0x9a1775c REFCNT = 2 FLAGS = (IOK,pIOK) IV = 20 $main::x (just to note that $x and $main::x are the same thing): SV = IV(0x9a32ac0) at 0x9a1775c REFCNT = 2 FLAGS = (IOK,pIOK) IV = 20 $main::y: SV = IV(0x9a32ac0) at 0x9a1775c REFCNT = 2 FLAGS = (IOK,pIOK) IV = 20 After exiting the block with local $x $x: SV = IV(0x9a32ac0) at 0x9a1775c REFCNT = 2 FLAGS = (IOK,pIOK) IV = 10 $main::y: SV = IV(0x9a32ac0) at 0x9a1775c REFCNT = 2 FLAGS = (IOK,pIOK) IV = 10 #### #!/usr/bin/perl -w use strict; use warnings; use Devel::Peek; our $x = 10; print "\$x:\n"; Dump($x); *y = \$x; print "\$main::y:\n"; Dump($main::y); { local $x = 20; print "\nIn block with local \$x\n"; print "\$x:\n"; Dump($x); print "\$main::x (just to note that \$x and \$main::x are the same thing):\n"; Dump($main::x); print "\$main::y:\n"; Dump($main::y); } print "\nAfter exiting the block with local \$x\n"; print "\$x:\n"; Dump($x); print "\$main::y:\n"; Dump($main::y); #### $x: SV = IV(0x9575ac0) at 0x955a75c REFCNT = 1 FLAGS = (IOK,pIOK) IV = 10 $main::y: SV = IV(0x9575ac0) at 0x955a75c REFCNT = 2 FLAGS = (IOK,pIOK) IV = 10 In block with local $x $x: SV = IV(0x9575ac4) at 0x9559c28 REFCNT = 1 FLAGS = (IOK,pIOK) IV = 20 $main::x (just to note that $x and $main::x are the same thing): SV = IV(0x9575ac4) at 0x9559c28 REFCNT = 1 FLAGS = (IOK,pIOK) IV = 20 $main::y: SV = IV(0x9575ac0) at 0x955a75c REFCNT = 3 FLAGS = (IOK,pIOK) IV = 10 After exiting the block with local $x $x: SV = IV(0x9575ac0) at 0x955a75c REFCNT = 2 FLAGS = (IOK,pIOK) IV = 10 $main::y: SV = IV(0x9575ac0) at 0x955a75c REFCNT = 2 FLAGS = (IOK,pIOK) IV = 10