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 sayscanonpathNo 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 thefilesystem 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/ =======================================================
