glob problem: escaped space seems to be significant too (was Re: Problem with glob and filenames containing '[' and ']')



David Squire wrote:
Hi folks,

I'm having trouble using glob to find filenames that contain '[' and
']', even though I am escaping those meta-characters. Here is an example
script and output:

Hi again,

I have reduced this further, getting rid of de-url and a bunch of other
stuff related to my original context. Please see the reduced script and
output below. It seems that having an escaped space as well as an escape
'[' causes the failure to match. See the third last test case.

I hesitate to say it, but this begins to feel like a bug... (covers head).

----


#!/usr/bin/perl

use strict;
use warnings;

print "Directory contents:\n", `ls -1 f*`, "\n";
for my $GlobPattern (
'fred*',
'fred[1]*',
'fred\[1\]*',
'fred\[1]*',
'fred[1\]*',
'fre\ d*',
'fre\ d\[*',
'fre\ d\[1*',
'fre\ d\[1\]*',
'fre?d\[1\]*',
'fre\ d?1\]*',
) {
my @CandidateOrigFiles = glob ($GlobPattern);
print "\n######################################\n";
print "$GlobPattern: \@CandidateOrigFiles:\n", join "\n",
@CandidateOrigFiles;
}

----

Output:

Directory contents:
fred]
fred[1]
fre d[1].doc
fred[[1].doc
fred[1].doc


######################################
fred*: @CandidateOrigFiles:
fred[1]
fred[1].doc
fred[[1].doc
fred]
######################################
fred[1]*: @CandidateOrigFiles:

######################################
fred\[1\]*: @CandidateOrigFiles:
fred[1]
fred[1].doc
######################################
fred\[1]*: @CandidateOrigFiles:
fred[1]
fred[1].doc
######################################
fred[1\]*: @CandidateOrigFiles:
fred[1]
fred[1].doc
######################################
fre\ d*: @CandidateOrigFiles:
fre d[1].doc
######################################
fre\ d\[*: @CandidateOrigFiles:
fre d[1].doc
######################################
fre\ d\[1*: @CandidateOrigFiles:
fre d[1].doc
######################################
fre\ d\[1\]*: @CandidateOrigFiles:

######################################
fre?d\[1\]*: @CandidateOrigFiles:
fre d[1].doc
######################################
fre\ d?1\]*: @CandidateOrigFiles:
fre d[1].doc

----

DS
.



Relevant Pages