このスクリプトを実行すると:
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を使用します。