2012-04-02 3 views
9

私はPerlには新しくないが、この種の問題は私を混乱させる。1台のコンピュータでStrawberry PerlとActiveState Perlを同時に使用できますか?

ActiveState Perlを一度削除して、インストールされているすべてのモジュールが失われました。だから私はこの種の問題に非常に注意しています。何らかの理由で、ActiveState Perlを使用したままStrawberry Perlを使用したいと考えています。

これは互換性の問題を引き起こしますか?それはお勧めですか?

答えて

2

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

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

コンピュータに複数のperlをインストールするのに役立つPerlBrew:http://perlbrew.pl/(または他のモジュール)を使用できます。

これは、Windowsで利用可能です:http://code.activestate.com/ppm/App-perlbrew/

よろしく、

+0

ASバージョンにはBusiness Edition Perlが必要です。 Strawberry Perlで利用できる[berrybrew](https://github.com/dnmfarrell/berrybrew)ツールがあります。 – flamey

5

perlの両方がモジュールのために別のディレクトリを見てみますとこれが問題になることはありません。つまり、@INCのエントリは異なります。

+0

あなたの説明をお寄せいただきありがとうございます!だから、もし環境の中でActive State perlが優先され、私がStrawberryを使いたいのであれば、どうすればいいですか? #!C:\ strawberry \ perl \ bin \ perlを指定するperlスクリプトの中で、 'Saiful'が言ったようなことができますか? さらに詳しいアドバイスがありますか?ありがとうございました! –

3

私はActiveStateとStrawberryの両方を自分のWin7Proにインストールしています。私のPATH変数の順序は私のPerlの設定を決定します。例えば、ActiveStateのを使用するため、私はこのような何かに私のPATHを設定します。

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

あなたはいつもシェバングを使用してスクリプトでこれをオーバーライドすることができます。

#!C:\strawberry\perl\bin\perl 

・ホープ、このことができます。

+0

ありがとう!これは本当に役立ちます。私は今これを試してみる。 –

+0

私が正しく思い出すと、シバンは窓で無視されます。私は正しいですか? – user1126070

+0

これはウィンドウでは無視されますが、デフォルトのperlがファイルを解析すると、shebang行に記述されているプログラムに制御が渡されます。 – justintime

0

他の解決方法が見つかりました。あなたは、ウィンドウのバッチファイルにあなたのperlコードを埋め込むことができます。こうすることで、perlスクリプトを実行する前にenv変数を設定したり、モジュールパスを組み込んだりすることができます。

@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 
関連する問題