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]
