John E. Malmberg wrote:
> I am still working out how to do the fix for this, but
I have
> runthrough.t failing only one test.
>
> Part of the problem has turned out to be that base.pm
is using C<qr{}>
> to build patterns for finding files.
>
> This causes a case sensitive search for files.
>
> It is specifically searching for '.PL' files, and by
default, Perl on
> VMS returns all filenames in lower case, so this never
matches.
>
> The regex needs to be set to case insensitive when
> File::Spec->case_tolerant is one.
>
> It looks like there are several instances of this, but
in the other
> cases, the filename portions of the patterns are in
lower case.
>
> I have not yet figured out how to make the regex
conditionally case
> insensitive, and if there are additional problems
beyond that.
How about:
sub _find_PL_regex {
return File::Spec->case_tolerant ? qr{.PL$}i :
qr{.PL$};
}
FWIW MakeMaker does it like this:
} elsif ($name =~ /.PLz/) {
($pl_files{$name} = $name) =~ s/.PLz// ;
} elsif (($Is_VMS || $Is_Dos) && $name =~
/[._]pl$/i) {
# case-insensitive filesystem, one dot per name,
so foo.h.PL
# under Unix appears as foo.h_pl under VMS or
fooh.pl on Dos
local($/); open(PL,$name); my $txt = <PL>;
close PL;
if ($txt =~ /Extracting S+ (with variable
substitutions/) {
($pl_files{$name} = $name) =~ s/[._]plz//i
;
}
else {
$pm{$name} =
$self->catfile($self->,$name);
}
} elsif ($name =~ /.(p[ml]|pod)z/){
$pm{$name} =
$self->catfile($self->,$name);
}
Don't do that.
--
I have a date with some giant cartoon robots and booze.
|