1

如果我运行这个脚本:

use Cwd;
print "$^O\n";
print cwd;

输出是:

C:\tmp>perl tmp.pl
msys
/c/tmp

如何获得 windows 风格的路径C:\tmp

4

2 回答 2

4

那是因为你使用的是内置perlmsys,而这个版本的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 配置文件中使用别名重定向perlActivePerl

alias perl /c/ActivePerl/bin/perl.exe

然后:

$ which perl
perl is /c/ActivePerl/bin/perl
于 2013-09-17T09:13:33.700 回答
2

你不是真的在 Windows 上,或者$^O会是MSWin32. 您在 MSYS unix 仿真环境中,因此拥有 unix 风格的路径也就不足为奇了。对于在 Windows 上本机运行的 Perl 版本,请使用ActivePerlStrawberry Perl

于 2013-09-17T11:32:29.640 回答