cwd и gwtcwd возвращают путь в стиле Linux в Windows
Если я запускаю этот скрипт:
use Cwd;
print "$^O\n";
print cwd;
Выход:
C:\tmp>perl tmp.pl
msys
/c/tmp
Как я могу получить путь в стиле Windows C:\tmp
?
2 ответа
Решение
Это потому, что вы используете встроенный perl
из msys
и эта версия perl
определенно даст путь в стиле Linux. Если вы установили Active Perl
и использовать Active Perl
чтобы запустить ваш скрипт, путь будет в стиле Win32:
$ /bin/perl5_8.exe path.pl
msys
/c/tmp
$ /c/ActivePerl/bin/perl.exe path.pl
MSWin32
c:/tmp
Вы можете использовать псевдоним в вашем профиле Bash для перенаправления perl
в ActivePerl
:
alias perl /c/ActivePerl/bin/perl.exe
Затем:
$ which perl
perl is /c/ActivePerl/bin/perl
Вы на самом деле не на Windows, или $^O
было бы MSWin32
, Вы находитесь в среде эмуляции Unix MSYS, поэтому неудивительно, что у вас есть пути в стиле Unix. Для версии Perl, которая изначально работает в Windows, используйте ActivePerl или http://strawberryperl.com/.