Subject: | \x83 breaks upgraded string |
Date: | Mon, 30 Sep 2013 14:23:46 +0100 |
To: | bug-P [...] rt.cpan.org |
From: | Zefram <zefram [...] fysh.org> |
If \x83 is used in a format string to suppress newline, and the format
string happens to be in upgraded form, P's result contains the octets
of the UTF-8 encoding of the format string rather than the characters
of the format string:
$ perl -we 'use P; $f = "L\x{e9}on\x{83}"; $a = P $f; utf8::upgrade($f); $b = P $f; use Data::Dumper; $Data::Dumper::Useqq=1; print Dumper($a, $b)'
$VAR1 = "L\351on";
$VAR2 = "L\303\251on";
This is a result of this line of P.pm:
{use bytes; #pretend we know what we are doing... ;-)
The comment accurately indicates what's going wrong.
-zefram