On Friday, August 30, 2002, at 02:24 AM, Michael G Schwern wrote:
> The Bricolage folks found a small bug caused by subtle differences in
> MakeMaker's old implementation of the File::Spec methods and
> the current
> one. The big difference being that things like catdir() and
> catfile() used
> to return canonical paths (ie. they ran the result through
> canonpath()).
> File::Spec doesn't.
What situation did this turn up in? It seems like a
"garbage-in-garbage-out" situation, and maybe it would be best
to just fix the garbage going in.
> $ perl5.6.1 -wle 'use File::Spec; print
> File::Spec->catfile("./Foo/Bar.pm")'
> ../Foo/Bar.pm
I assume you meant to only paste one dot there.
> Since the MakeMaker code assumes the canonicalization will happen this
> causes subtle problems like man pages with the name .::Foo::Bar.3pm.
Why is the dot getting there in the first place?
>
> Rather than try and go through the code and find all the places
> where it's
> assuming canonicalization will happen, I think I'll just put File::Spec
> wrappers back into MakeMaker and change all the File::Spec->foo
> calls to
> $self->foo. Seems like a step backwards after all the work we
> did to change over to File::Spec, but oh well.
Auuughh! Is changing File::Spec not an option? It doesn't seem
to specify one way or the other what the behavior is supposed to
be.
-Ken