http://www.perlmonks.org?node_id=1016458


in reply to Re^6: RFC - File::Util 4.x Series Pre-Release
in thread RFC - File::Util 4.x Series Pre-Release

I think it would just be a matter of blacklisting filenames (not paths) containing things that qualify as a "path root" or a path "separator".

Hm The problem is that Windows has two separate OS APIs for dealing with ANSI and Wide file & paths, but Perl only uses the ANSI versions internally, so trying to even open a file who's name that contains Unicode characters fails. Often silently. Even the simplest things -- like globing a directory -- won't see files that the user can see are there, because glob templates that contain Unicide characters won't match the ANSIfied short pathnames that the ANSI APIs return for files containing unicode characters.

The user can see a file (using explorer or dir), but when he uses your module to attempt to manipulate that file, your module can't even see it. He's gonna blame your module.

One possible route -- and maybe an eye-opener for the task you are thinking of taking on -- would be to look at the Win32::Unicode::* set of modules.

Good luck.


With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.
  • Comment on Re^7: RFC - File::Util 4.x Series Pre-Release

Replies are listed 'Best First'.
Re^8: RFC - File::Util 4.x Series Pre-Release
by Tommy (Chaplain) on Feb 01, 2013 at 16:32 UTC

    That seems like a huge glaring bug. Wow.

    *wonders if Perl6 tries to fix this*

    Once again, thanks for the guidance, checking those out... If I'm going to be portable, I've got to understand all the dark corners of file handling on every major OS (Solaris has some of the worst).

    Tommy
    A mistake can be valuable or costly, depending on how faithfully you pursue correction