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 =~ /\.PL\z/) { ($pl_files{$name} = $name) =~ s/\.PL\z// ; } 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/[._]pl\z//i ; } else { $pm{$name} = $self->catfile($self->{INST_LIBDIR},$name); } } elsif ($name =~ /\.(p[ml]|pod)\z/){ $pm{$name} = $self->catfile($self->{INST_LIBDIR},$name); } Don't do that. -- I have a date with some giant cartoon robots and booze.