substr($_, 3, 2) = 'foo';
####
substr($_, 3, 2, 'foo');
##
##
my $ref = \substr($_, 3, 2);
$$ref = 'foo';
##
##
>perl -MDevel::Peek -e"$_ = 'abcdef'; my $ref = \substr($_, 3, 2); Dump($$ref);"
SV = PVLV(0x4d3d24) at 0x2cb29c <--- PVLV
REFCNT = 1
FLAGS = (TEMP,GMG,SMG) <--- "get" magic and "set" magic
IV = 0
NV = 0
PV = 0
MAGIC = 0x49f09c
MG_VIRTUAL = &PL_vtbl_substr <--- Function pointers for magic
MG_TYPE = PERL_MAGIC_substr(x) <--- x = substr magic
TYPE = x <--- x = substr magic
TARGOFF = 3 <--- For "x", start offset of substring
TARGLEN = 2 <--- For "x", length of substring
TARG = 0x4a8414 <--- For "x", addr of associated scalar ($_)
FLAGS = 0
SV = PV(0x2c8a6c) at 0x4a8414 <--- Dump of associated scalar ($_)
REFCNT = 2
FLAGS = (POK,pPOK)
PV = 0x2cab94 "abcdef"\0
CUR = 6
LEN = 12