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