Thnaks for correction of my misunderstanding and new information.
I don't think it's a bug. rel2abs uses canonpath to clean up the
path it creates. But the File::Spec documentation for canonpath says
canonpath
No physical check on the filesystem, but a logical cleanup
of a path.
$cpath = File::Spec->canonpath( $path ) ;
Note that this does *not* collapse x/../y sections into
y. This is
by design. If /foo on your system is a symlink to /bar/
baz, then
/foo/../quux is actually /bar/quux, not /quux as a
naive ../-removal
would give you. If you want to do this kind of
processing, you prob-
ably want "Cwd"'s "realpath()" function to actually
traverse the
filesystem cleaning up paths like this.
Trying Cwd::realpath in your example (but with real filenames,
because realpath() looks at the filesystem in order to resolve
symlinks) gives the result you seek. As a side issue, because
realpath does look at the filesystem, it's expensive compared with
the other operations, so you may want to avoid it if you can.
=======================================================
Tetsuro KURITA
E-mail: [EMAIL PROTECTED]
http://homepage.mac.com/tkurita/scriptfactory/
=======================================================