以前はActivePerlを一度削除したことがあり、インストールされているすべてのモジュールが失われました。だから今、私はこの種の問題に非常に注意を払っています。どういうわけか、 ActiveState の ActivePerl を使用したまま、Strawberry Perlを使用したいと考えています。
これにより互換性の問題が発生しますか? それはお勧めですか?
以前はActivePerlを一度削除したことがあり、インストールされているすべてのモジュールが失われました。だから今、私はこの種の問題に非常に注意を払っています。どういうわけか、 ActiveState の ActivePerl を使用したまま、Strawberry Perlを使用したいと考えています。
これにより互換性の問題が発生しますか? それはお勧めですか?
両方の Perl 実装がモジュールの異なるディレクトリを参照するため、これは問題になりません。つまり、@INC
エントリは異なります。
Windows 7 Pro インスタンスにActivePerlとStrawberry Perlの両方をインストールしたままにしています。PATH 変数の順序によって、Perl の好みが決まります。たとえば、ActivePerl を使用するために、PATH を次のように設定します。
C:\Perl64\bin;C:\strawberry\perl\bin
シバンを使用して、スクリプトでこれをいつでもオーバーライドできます。
#!C:\strawberry\perl\bin\perl
一度に 2 つの (多くの) 異なる Perl バージョンを使用できます。
PATH 変数を設定して、プライマリ Perl パス (perl.exe へのパス) を含めて、 でプログラムを開始するときに正しい Perl を実行していることを確認しますperl script.pl
。
Perlbrew (または他のモジュール) を使用して、コンピューターに複数の Perl インストールを維持することができます。
Windows で利用できます: http://code.activestate.com/ppm/App-perlbrew/
これに対する別の解決策を見つけました。Perl コードを Windows バッチ ファイルに埋め込むことができます。このようにして、Perl スクリプトを実行する前に環境変数を設定したり、モジュール パスを含めたりすることができます。
@echo off
cd %TEMP%
set perl_bindir=C:\strawberry\perl\bin
set module_dir=C:\my_perl_modules
set path=%perl_bindir%;%path%
echo Launching %0 perl script
%perl_bindir%\perl.exe -I %module_dir% -x -S %0 %*
goto endofperl
#!perl -w
use strict;
print "Hello World\n";
__END__
:endofperl