use Devel::Peek qw( Dump );
$_ = "x" x 999;
$_ .= "x"; # Force unsharing.
Dump( $_ );
$_ = "abc";
Dump( $_ );
####
SV = PV(0x5b5d1f3fdee0) at 0x5b5d1f439bc8
REFCNT = 1
FLAGS = (POK,pPOK)
PV = 0x5b5d1f441580 "xxx[...]xxx"\0
CUR = 1000
LEN = 1001
SV = PV(0x5b5d1f3fdee0) at 0x5b5d1f439bc8
REFCNT = 1
FLAGS = (POK,pPOK)
PV = 0x5b5d1f441580 "abc"\0 <-- Same buffer
CUR = 3
LEN = 1001 <-- Same size
####
use Devel::Peek qw( Dump );
$_ = "abcdefghi";
$_ .= "j"; # Force unsharing.
Dump( $_ );
substr( $_ , 0 , 1 ) = "";
Dump( $_ );
####
SV = PV(0x600760853ee0) at 0x6007608a35d8
REFCNT = 1
FLAGS = (POK,pPOK)
PV = 0x60076086a2e0 "abcdefghij"\0
CUR = 10
LEN = 16
SV = PV(0x600760853ee0) at 0x6007608a35d8
REFCNT = 1
FLAGS = (POK,OOK,pPOK)
OFFSET = 1
PV = 0x60076086a2e1 ( "\x01" . ) "bcdefghij"\0
CUR = 9
LEN = 15