Here is a fairly clear illustration of the bug:

$ show logical e0
   "E0" = "DKA104:[USERS.]" (LNM$SYSTEM_TABLE)
$ show default
  E0:[PERL.581RC.PERL_20760_PATCHED_B1]
$ perl  "-MFile::Spec" -e "print File::Spec->abs2rel($^X)"
[---.users.perl.581rc.perl_20760_patched_b1]ndbgperl.exe;3
$ perl -e "print $^X"
dka104:[users.perl.581rc.perl_20760_patched_b1.][000000]ndbgperl.exe;3

The abs2rel() return value is "incorrect" whereas the raw $^X is
correct.  Note what happens after I set def to the physical
path of the directory:

$ set def DKA104:[USERS.PERL.581RC.PERL_20760_PATCHED_B1]
$ perl -e "print $^X"
dka104:[users.perl.581rc.perl_20760_patched_b1.][000000]ndbgperl.exe;3
$ perl  "-MFile::Spec" -e "print File::Spec->abs2rel($^X)"
ndbgperl.exe;3

It looks like the spurious --- in the rooted logical path case are
prepended
in lines 427 to 447 of [.lib.File.Spec]VMS.pm.

Peter Prymmer

Reply via email to