如果我运行此脚本:
use Cwd;
print "$^O\n";
print cwd;
输出结果为:
C:\tmp>perl tmp.pl
msys
/c/tmp
如何获得Windows样式路径C:\tmp
?
答案 0 :(得分:4)
这是因为您正在使用内置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
答案 1 :(得分:2)
您实际上并不在Windows上,或$^O
将是MSWin32
。你在MSYS unix仿真环境中,所以你有unix风格的路径就不足为奇了。对于本机在Windows上运行的Perl版本,请使用ActivePerl或Strawberry Perl。