in reply to Does the utf8::upgrade change the value?

Because that is how utf8::upgrade works, if there is nothing to change, it doesn't change anything
  • Comment on Re: Does the utf8::upgrade change the value?

Replies are listed 'Best First'.
Re^2: Does the utf8::upgrade change the value?
by Leo_Yao (Initiate) on Feb 25, 2011 at 13:48 UTC

    Thanks. But I still don't understand why the value is changed in the case of "use bytes".

      character semantics
      $ perl -MDevel::Peek -e "Dump $f=chr(400) " SV = PV(0x3e69ec) at 0x98a414 REFCNT = 1 FLAGS = (POK,pPOK,UTF8) PV = 0x98419c "\306\220"\0 [UTF8 "\x{190}"] CUR = 2 LEN = 4
      byte semantics
      $ perl -MDevel::Peek -e " use bytes; Dump $f=chr(400) " SV = PV(0x3e69f4) at 0x98a434 REFCNT = 1 FLAGS = (POK,pPOK) PV = 0x9841ac "\220"\0 CUR = 1 LEN = 4
      utf8::upgrade makes character semantics again
      $ perl -MDevel::Peek -e " use bytes; $f=chr(400); utf8::upgrade($f); +Dump $f " SV = PV(0x3e6a0c) at 0x98a474 REFCNT = 1 FLAGS = (POK,pPOK,UTF8) PV = 0x3ef4e4 "\302\220"\0 [UTF8 "\x{90}"] CUR = 2 LEN = 3
      bytes
        Got it. Thanks.