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

Reply via email to