Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical
 
PerlMonks  

file globbing heck

by chinman (Monk)
on May 03, 2002 at 20:43 UTC ( [id://163900]=perlquestion: print w/replies, xml ) Need Help??

chinman has asked for the wisdom of the Perl Monks concerning the following question:

Greetings Monkdom,

I'm running into some weirdness when trying to glob files when the directory name has spaces. This is on Win NT or 2000 running 5.6.1 build 631.

## case 1, with spaces in dir name my $dir = 'C:/foo/bar baz/'; ## this works ok my @xlfiles = <"$dir*.xls">; ## case 2, no spaces in dir name $dir = 'C:/foo/bar_baz/'; ## this does not work... @xlfiles = <"$dir*.xls">; ## but this does... @xlfiles = <$dir*.xls>;
So my question is, what is the proper way to glob assuming that you may or may not have spaces in a directory file name? I've also tried all combinations of the glob operator with no luck...

glob("$dir*.xls") acts like <$dir*.xls>

Currently, I test for the presence of spaces and select the format that works with either case 1 or case 2, like this...
if ( "$dir" =~ /.*\s+.*/ ) { @xlfiles = <"$dir*.xls">; } else { @xlfiles = <$dir*.xls>; }
but this seems kind of Harkonian. Any suggestions?

Regards, chinman

Replies are listed 'Best First'.
Re: file globbing heck
by belg4mit (Prior) on May 03, 2002 at 20:58 UTC
    I'd chdir first and avoid the whole problem. It also gets you a smaller result set back.

    I'd also use glob, because it's prettier.

    --
    perl -pew "s/\b;([mnst])/'$1/g"

Re: file globbing heck
by Fastolfe (Vicar) on May 04, 2002 at 17:02 UTC
    Escape your spaces with a backslash (s/\s/\\ /g should do it).
    $dir = 'c:/some/directory\ with\ spaces'; @xlfiles = glob("$dir/*.xls");

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlquestion [id://163900]
Approved by belg4mit
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others examining the Monastery: (5)
As of 2025-07-08 11:53 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found

    Notices?
    erzuuliAnonymous Monks are no longer allowed to use Super Search, due to an excessive use of this resource by robots.