in reply to Curious about why some characters cause issues with mkdir/print
Perl operators that deal with paths suffer from The Unicode Bug. The path actually used is provided by the following sub:
sub path_actually_used { if (is_utf8($_[0]) { my $s = $_[0]; utf8::encode($s); return $s; } else { return $_[0]; } }
That means that if you have encoded bytes in an upgraded string, Perl will get it wrong.
my $s = chr(9734); mkdir($s); # ok utf8::encode($s); mkdir($s); # ok utf8::upgrade($s); mkdir($s); # not ok
It's virtually impossible to get into that situation without a bug in your code because the encoding functions always return a downgraded string.
You've already identified the solution:
|
|---|