如果我运行这个脚本:
use Cwd;
print "$^O\n";
print cwd;
输出是:
C:\tmp>perl tmp.pl
msys
/c/tmp
如何获得 windows 风格的路径C:\tmp
?
那是因为你使用的是内置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
. 您在 MSYS unix 仿真环境中,因此拥有 unix 风格的路径也就不足为奇了。对于在 Windows 上本机运行的 Perl 版本,请使用ActivePerl或Strawberry Perl。