Subject: | Mangled drive letter in File::Spec::Win32 |
I am experiencing a problem with File::Spec::Win32 on Perl 5.8.0 compiled with MS Visual C++ 6.0. When passing a directory such as "n:\data" to File::Spec->catfile, the name gets mangled to "N0\data" (N zero) instead of a valid drive letter "N:". When passing "N:\data" to catfile, the function works correctly. I tracked the problem down to canonpath in File::Spec::Win32. Here is a patch which fixes the problem:
127c127
< $path =~ s/^([a-z]:)/\u$1/s;
---
Show quoted text
> $path =~ s/^([a-z]):/\u$1:/s;
It appears that "\u" in the substitution was the culprit.