$ perl -MDevel::Peek -le'utf8::upgrade(my $x = chr(0xE9)); print length($x); Dump($x)' 1 SV = PVMG(0x817fd40) at 0x814cc6c REFCNT = 1 FLAGS = (PADBUSY,PADMY,SMG,POK,pPOK,UTF8) IV = 0 NV = 0 PV = 0x815bda0 "\303\251"\0 [UTF8 "\x{e9}"] CUR = 2 LEN = 3 MAGIC = 0x8163060 MG_VIRTUAL = &PL_vtbl_utf8 MG_TYPE = PERL_MAGIC_utf8(w) MG_LEN = 1 $ perl -MDevel::Peek -le'utf8::encode(my $x = chr(0xE9)); print length($x); Dump($x)' 2 SV = PV(0x814ce90) at 0x814cc6c REFCNT = 1 FLAGS = (PADBUSY,PADMY,POK,pPOK) PV = 0x815bda0 "\303\251"\0 CUR = 2 LEN = 3