use Devel::Peek;
$_ = 'blah';
while(/./g){
Dump $_;
foo();
Dump $_;
last;
}
sub foo {
local $_ = 'foo';
pos($_) = 2;
Dump $_;
}
__END__
output is:
SV = PVMG(0x8102ff8) at 0x80e72ac
REFCNT = 1
FLAGS = (SMG,POK,pPOK)
IV = 0
NV = 0
PV = 0x80f3400 "blah"\0
CUR = 4
LEN = 5
MAGIC = 0x80f3660
MG_VIRTUAL = &PL_vtbl_mglob
MG_TYPE = 'g'
MG_LEN = 1
SV = PVMG(0x8103018) at 0x80e7300
REFCNT = 2
FLAGS = (SMG,POK,pPOK)
IV = 0
NV = 0
PV = 0x80f2008 "foo"\0
CUR = 3
LEN = 4
MAGIC = 0x80f3660
MG_VIRTUAL = &PL_vtbl_mglob
MG_TYPE = 'g'
MG_LEN = 2
SV = PVMG(0x8102ff8) at 0x80e72ac
REFCNT = 1
FLAGS = (SMG,POK,pPOK)
IV = 0
NV = 0
PV = 0x80f3400 "blah"\0
CUR = 4
LEN = 5
MAGIC = 0x80f3660
MG_VIRTUAL = &PL_vtbl_mglob
MG_TYPE = 'g'
MG_LEN = -1
####
use Devel::Peek;
$_ = 'blah';
while(/./g){
Dump $_;
for ('foo'){ # implicit localization of $_
pos($_) = 2;
Dump $_;
}
Dump $_;
last;
}
__END__
output:
SV = PVMG(0x8102ff8) at 0x80e72ac
REFCNT = 1
FLAGS = (SMG,POK,pPOK)
IV = 0
NV = 0
PV = 0x80f4d78 "blah"\0
CUR = 4
LEN = 5
MAGIC = 0x80f35d0
MG_VIRTUAL = &PL_vtbl_mglob
MG_TYPE = 'g'
MG_LEN = 1
SV = PVMG(0x8103018) at 0x80f90f0
REFCNT = 3
FLAGS = (SMG,POK,READONLY,pPOK)
IV = 0
NV = 0
PV = 0x80f38e8 "foo"\0
CUR = 3
LEN = 4
MAGIC = 0x80f1cb0
MG_VIRTUAL = &PL_vtbl_mglob
MG_TYPE = 'g'
MG_LEN = 2
SV = PVMG(0x8102ff8) at 0x80e72ac
REFCNT = 1
FLAGS = (SMG,POK,pPOK)
IV = 0
NV = 0
PV = 0x80f4d78 "blah"\0
CUR = 4
LEN = 5
MAGIC = 0x80f35d0
MG_VIRTUAL = &PL_vtbl_mglob
MG_TYPE = 'g'
MG_LEN = 1
####
$main::var = 12;
{
local $main::var = 10;
$main::bar = \$main::var;
}
$$main::bar = 42; # doesn't affect $main::var
print $main::var; # prints: 12