in reply to File::Spec bug on VMS
So, after too much time stepping through with the debugger...
There is a bug in the function unixify (in VMS::Filespec). A control character is added to the end of certain length paths:
I don't know how to solve this, but as a workaround, if you always pass the device name to the catfile function, it works. So do this:
There is a bug in the function unixify (in VMS::Filespec). A control character is added to the end of certain length paths:
As opposed to47: my($npath) = unixify($path); DB<7> x $path 0 '[DIR.aaaaa]' DB<8> s File::Spec::VMS::eliminate_macros(/perl_root/lib/File/Spec/VMS.pm:48): 48: my($complex) = 0; DB<8> x $npath 0 "/USERS/DIR/aaaaa\c@" # <---- What's that \c@ doing there?!
47: my($npath) = unixify($path); DB<9> x $path 0 '[DIR.aaaaaaa]' DB<10> s File::Spec::VMS::eliminate_macros(/perl_root/lib/File/Spec/VMS.pm:48): 48: my($complex) = 0; DB<10> x $npath 0 '/USERS/DIR/aaaaaaa/'
I don't know how to solve this, but as a workaround, if you always pass the device name to the catfile function, it works. So do this:
print File::Spec->catfile("USERS:[DIR.aaaaa]", "file"); # Include USER +S:, or else this won't work!
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^2: File::Spec bug on VMS (rt)
by tye (Sage) on Sep 29, 2006 at 20:08 UTC |
In Section
Seekers of Perl Wisdom