On Thu, 20 May 2004, Geoffrey Young wrote:

> I find it strange, though, that File::Spec doesn't take
> care of this.  after all, isn't File::Spec supposed to be
> used for exactly this reason?  if I need to use
> Apache::TestUtil::t_catfile for tests in cross-platform
> CPAN modules then what's the point of File::Spec::catfile?
>
> not to increase your workload, but maybe File::Spec should
> be patched to account for the win32 differences for the
> greater good, rather than working around what appears to
> me to be a bug.

I asked Ken Williams about this, and he replied:

==========================================================
Hi Randy,

In general I'm not a good person to make *decisions*
regarding File::Spec (that's really p5p's job), but I can
tell you what they've said in the past.

File::Spec is supposed to only deal with file
specifications.  In general it shouldn't ever touch the
filesystem itself.  So canonpath()  shouldn't ask the OS to
translate a path to long form - that's the job of something
else, essentially a layer on top of File::Spec or something.

A similar issue has been well hashed-out on Unix: should
canonpath()  turn "foo/../bar" into just "bar".  It's been
ruled that it should *not*, because if 'foo' is a symbolic
link then "foo/../bar" may refer to a different place than
"bar" does.

I think that this means File::Spec shouldn't make
significant changes to the surface forms of paths, it should
just deal with basic string modifications of them.

But this probably would be a better topic for p5p than for me.

  -Ken

===================================================================
So while he defers the decision about this issue, it
appears not to be within the philosophy of File::Spec
(getting the long path name does require interaction
with the file system, as what that path name is depends
on its relationship within the directory structure).

Should we persue this on p5p?

-- 
best regards,
randy

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to