1

このスクリプトを実行すると:

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

出力は次のとおりです。

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

Windows スタイルのパスを取得するにはどうすればよいC:\tmpですか?

4

2 に答える 2

4

これは、組み込みの を使用しているためです。perlこのmsysバージョンのperlは、間違いなく Linux スタイルのパスを提供します。スクリプトをインストールActive PerlActive 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
于 2013-09-17T09:13:33.700 に答える
2

あなたは本当にWindowsを使っていないか、$^OそうなるでしょうMSWin32。あなたは MSYS unix エミュレーション環境の中にいるので、unix スタイルのパスがあっても不思議ではありません。Windows でネイティブに実行される Perl のバージョンの場合は、ActivePerlまたはStrawberry Perlを使用します。

于 2013-09-17T11:32:29.640 に答える