http://qs321.pair.com?node_id=632683

tinita has asked for the wisdom of the Perl Monks concerning the following question:

hello monks,

i recently wondered why some of my utf8 strings missed their utf8 flag. i found the point where they were used as arguments to Digest::MD5::md5_hex.

$ perl -wle' use Digest::MD5 qw(md5_hex); use Devel::Peek; use Encode; my $string = ""; Encode::_utf8_on($string); Dump $string; my $md5 = md5_hex($string); Dump $string ' SV = PV(0x8153b00) at 0x8153684 REFCNT = 1 FLAGS = (PADBUSY,PADMY,POK,pPOK,UTF8) PV = 0x8174d48 "\303\244\303\266\303\274"\0 [UTF8 "\x{e4}\x{f6}\x{fc +}"] CUR = 6 LEN = 8 SV = PVMG(0x81ee3e0) at 0x8153684 REFCNT = 1 FLAGS = (PADBUSY,PADMY,SMG,POK,pPOK) IV = 0 NV = 0 PV = 0x8174d48 "\344\366\374"\0 CUR = 3 LEN = 8 MAGIC = 0x81cbca0 MG_VIRTUAL = &PL_vtbl_utf8 MG_TYPE = PERL_MAGIC_utf8(w) MG_LEN = 3
shouldn't the function leave its arguments alone?