Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses
 
PerlMonks  

Re^3: Trouble with File::Find::Rule

by Jim (Curate)
on Dec 14, 2013 at 05:15 UTC ( #1067110=note: print w/ replies, xml ) Need Help??


in reply to Re^2: Trouble with File::Find::Rule
in thread Trouble with File::Find::Rule

You can't use chdir to change the current working directory to a Japanese folder name (Unicode) on Windows. It fails.

Running this trivial Perl script…

    #!perl

    use strict;
    use warnings;
    use utf8;
    use autodie qw( chdir );

    binmode STDERR, ':encoding(UTF-8)';

    chdir 'C:/日本/';

…fails with this error message…

    Can't chdir('C:/日本/'): No such file or directory at JapanFolder.pl line 8

File::Find uses chdir.

I'm running Strawberry Perl version 5.16.2.

Jim

UPDATE:

Running this Perl script…

#!perl use strict; use warnings; use utf8; use autodie qw( chdir ); binmode STDERR, ':encoding(UTF-8)'; chdir 'C:/Doesn’t Work/';

…fails with this error message…

    Can't chdir('C:/Doesn’t Work/'): No such file or directory at DoesntWork.pl line 8


Comment on Re^3: Trouble with File::Find::Rule
Download Code
Re^4: Trouble with File::Find::Rule
by ww (Bishop) on Dec 14, 2013 at 11:49 UTC
    Had you limited your indictment (first sentence) to working with Japanese characters, I couldn't and wouldn't have argued. But your indictment was global... and that's still wrong.

    For working code examples, you don't need a new and redundant post from /me. There are examples enough already on site, if you seek them out.

      ww,

      It was a lament, not an indictment. And I was careful to mention that other modern scripting languages have the same problems handling Microsoft Windows file systems as Perl does so that no fellow monks would get their tender feelings hurt. I still don't see what part of my earnest post got your hackles up. And I challenge your assertion that it is "outrageously inaccurate." No it's not.

      If there was any tacit indictment in my post, it was of Microsoft and its own piece-o'-sh*t modern scripting language, PowerShell. When I wrote "I could be wrong," I meant I could be wrong about my insinuation that PowerShell is just as incapable of handling paths that exceed the infamous MAX_PATH limitation as other scripting languages. Well, I just checked the interwebs. I wasn't wrong. PowerShell is as broken with respect to MAX_PATH as just about everything else Microsoft includes in its expensive commercial operating systems (Windows Explorer, the DIR and COPY commands, etc.).

      The point of my second post has nothing to do with Japanese per se. I simply used a Japanese folder name (日本, "Japan" in Japanese) in my example Perl script because that folder happened to be on my system drive, and it's one chdir can't change to. That's all. I could just as easily have illustrated the problem with I ♡ 🐪 or any folder name including any one of the over 110,000 graphical characters in the Unicode character repertoire that will cause chdir to fail. (N.B. I've updated my earlier post with a new example.)

      For working code examples, you don't need a new and redundant post from /me. There are examples enough already on site, if you seek them out.

      I realize there are innumerable examples on PerlMonks of Perl scripts that use File::Find and that are intended to be run on Windows. And many of them will work just fine until—BAM!—they don't. I enumerated three verifiable reasons any one of these otherwise "working" code examples will not work. And when it fails, you're screwed, because there are no trivial, portable, sensible solutions to any of the problems. There may be workarounds nowadays as Anonymous Monk has pointed out below, but IMHO, they all suck. And they all mean you can't use File::Find, which is my point.

      Jim

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1067110]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others imbibing at the Monastery: (6)
As of 2014-09-19 00:47 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    How do you remember the number of days in each month?











    Results (129 votes), past polls