9

以前はActivePerlを一度削除したことがあり、インストールされているすべてのモジュールが失われました。だから今、私はこの種の問題に非常に注意を払っています。どういうわけか、 ActiveState の ActivePerl を使用したまま、Strawberry Perlを使用したいと考えています。

これにより互換性の問題が発生しますか? それはお勧めですか?

4

4 に答える 4

5

両方の Perl 実装がモジュールの異なるディレクトリを参照するため、これは問題になりません。つまり、@INCエントリは異なります。

于 2012-04-02T08:43:16.213 に答える
3

Windows 7 Pro インスタンスにActivePerlStrawberry Perlの両方をインストールしたままにしています。PATH 変数の順序によって、Perl の好みが決まります。たとえば、ActivePerl を使用するために、PATH を次のように設定します。

C:\Perl64\bin;C:\strawberry\perl\bin

シバンを使用して、スクリプトでこれをいつでもオーバーライドできます。

#!C:\strawberry\perl\bin\perl
于 2012-04-02T08:50:46.333 に答える
2

一度に 2 つの (多くの) 異なる Perl バージョンを使用できます。

PATH 変数を設定して、プライマリ Perl パス (perl.exe へのパス) を含めて、 でプログラムを開始するときに正しい Perl を実行していることを確認しますperl script.pl

Perlbrew (または他のモジュール) を使用して、コンピューターに複数の Perl インストールを維持することができます。

Windows で利用できます: http://code.activestate.com/ppm/App-perlbrew/

于 2012-04-02T08:41:57.357 に答える
0

これに対する別の解決策を見つけました。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
于 2012-04-11T08:40:01.883 に答える