Hello dear fellow monks!

As I found out the hard way on windows, file system related functions like stat or the file test operators would not work in general with funny file path strings that have the flag UTF8 set. Of course, if you compare such a variable with the literal string without a set UTF8 flag, they are reported as equal, but the effect with e.g. -f is different!
The only documentation I could find was in utf8, which I only found after I had analyzed the variable with Devel::Peek::Dump and then realized it was a UTF8 related effect.

My solution was to utf8::downgrade the string variable before using it with the above operators, which fixed my original problem.

But then I thought, wouldn't Perl be better, if the file system related functions would ensure this by calling utf8::downgrade() on (a copy of) the file path string themselves?

Before I suggest this as an improvement at Perl porters, I would like know, if there are any points/arguments/use cases against that suggestion?

Thanks for any enlightenments!


In reply to utf8::downgrade() and file system operators by hexcoder

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.