我對Perl並不陌生,但這個問題有點讓我困惑。我可以在一臺計算機上同時使用Strawberry Perl和ActiveState Perl嗎?
我曾經刪除我的ActiveState Perl一次,所有安裝的模塊都丟失了。所以現在我對這類問題非常小心。由於某種原因,我希望現在使用Strawberry Perl,同時保持ActiveState Perl的使用。
這是否會導致兼容性問題?這是可取的嗎?
我對Perl並不陌生,但這個問題有點讓我困惑。我可以在一臺計算機上同時使用Strawberry Perl和ActiveState Perl嗎?
我曾經刪除我的ActiveState Perl一次,所有安裝的模塊都丟失了。所以現在我對這類問題非常小心。由於某種原因,我希望現在使用Strawberry Perl,同時保持ActiveState Perl的使用。
這是否會導致兼容性問題?這是可取的嗎?
您可以一次使用兩個(許多)不同的perl版本。
設置您的PATH變量以包含您的主perl路徑(perl.exe路徑),以確保您在使用perl script.pl啓動程序時運行正確的perl。
您可以使用PerlBrew:http://perlbrew.pl/(或其他模塊)來幫助保持您的計算機上安裝多個perl。
它可以在Windows上:http://code.activestate.com/ppm/App-perlbrew/
問候,
這會不會是因爲perl
小號都將着眼於爲模塊不同目錄中的一個問題。即,@INC
條目將有所不同。
感謝您的澄清!因此,如果在Active State perl的環境路徑中有優先權,並且我想使用Strawberry,那我應該怎麼做?我可以在perl腳本中指定#!C:\ strawberry \ perl \ bin \ perl嗎? 或者有更明智的解決方案嗎?謝謝! – 2012-04-02 10:00:17
我同時在我的Win7Pro上安裝了ActiveState和Strawberry。我的PATH變量順序決定了我的Perl偏好。 E.g,使用的ActiveState我我的路徑設置是這樣的:
C:\Perl64\bin;C:\strawberry\perl\bin
您可以在腳本中使用家當始終重寫此:
#!C:\strawberry\perl\bin\perl
希望這有助於。
謝謝!這真的有幫助。我現在就試試這個。 – 2012-04-02 09:35:35
如果我正確地記得在窗口中忽略了shebang。我對麼? – user1126070 2012-04-11 08:04:26
它被windows忽略,但是當默認的perl獲得解析文件時,它會將控制權傳遞給shebang行中提到的程序。 – justintime 2013-08-02 20:27:32
我發現了其他解決方案。您可以將您的Perl代碼嵌入到Windows批處理文件中。這樣你可以在執行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
AS版本需要Business Edition Perl。現在有用於Strawberry Perl的[berrybrew](https://github.com/dnmfarrell/berrybrew)工具。 – flamey 2015-02-11 21:52:08