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