#!/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