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


in reply to Spaces in folder names...

Since it seems you're getting the folder name from the command line, beware that white space will be used to separate individual command line arguments. If this is happening -- and I'm willing to bet XP that it is -- you'll have to try quoting the entire folder name, ("like this"). I believe there's a way to escape the white space in Windows (I know there is in most *ix shells), so dig into your shell documentation.


Information about American English usage here and here. Floating point issues? Please read this before posting. — emc

Replies are listed 'Best First'.
Re^2: Spaces in folder names...
by ikegami (Patriarch) on Oct 14, 2009 at 04:02 UTC

    It has nothing to do with the shell. Despite an origin in csh, glob patterns are system independent*. Space is special to glob. It indicates a separation of patterns. For example, glob('*.h *.c') will return all C source and C header files.

    Surrounding the pattern in quotes will fail. Quotes aren't special to glob. The space can be escaped using "\". However, it's simpler to just call bsd_glob. bsd_glob is the function that implements glob, but it doesn't treat spaces specially when it's called directly.

    * — Almost. IIRC, "\" is treated literally in Windows when it isn't followed by a special character. This doesn't matter here.

      I was thinking that it did have something to do with the shell because he was getting the value for his input folder from $ARGV[0]. Since bsd_glob seemed to work with no other changes, I'll accept that the shell was not relevant.


      Information about American English usage here and here. Floating point issues? Please read this before posting. — emc