このスクリプトを実行すると:
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
perl
にリダイレクトするには、bash プロファイルでエイリアスを使用できます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を使用します。