2012-04-02 61 views

回答

2

您可以一次使用兩個(許多)不同的perl版本。

設置您的PATH變量以包含您的主perl路徑(perl.exe路徑),以確保您在使用perl script.pl啓動程序時運行正確的perl。

您可以使用PerlBrew:http://perlbrew.pl/(或其他模塊)來幫助保持您的計算機上安裝多個perl。

它可以在Windows上:http://code.activestate.com/ppm/App-perlbrew/

問候,

+0

AS版本需要Business Edition Perl。現在有用於Strawberry Perl的[berrybrew](https://github.com/dnmfarrell/berrybrew)工具。 – flamey 2015-02-11 21:52:08

5

這會不會是因爲perl小號都將着眼於爲模塊不同目錄中的一個問題。即,@INC條目將有所不同。

+0

感謝您的澄清!因此,如果在Active State perl的環境路徑中有優先權,並且我想使用Strawberry,那我應該怎麼做?我可以在perl腳本中指定#!C:\ strawberry \ perl \ bin \ perl嗎? 或者有更明智的解決方案嗎?謝謝! – 2012-04-02 10:00:17

3

我同時在我的Win7Pro上安裝了ActiveState和Strawberry。我的PATH變量順序決定了我的Perl偏好。 E.g,使用的ActiveState我我的路徑設置是這樣的:

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

您可以在腳本中使用家當始終重寫此:

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

希望這有助於。

+0

謝謝!這真的有幫助。我現在就試試這個。 – 2012-04-02 09:35:35

+0

如果我正確地記得在窗口中忽略了shebang。我對麼? – user1126070 2012-04-11 08:04:26

+0

它被windows忽略,但是當默認的perl獲得解析文件時,它會將控制權傳遞給shebang行中提到的程序。 – justintime 2013-08-02 20:27:32

0

我發現了其他解決方案。您可以將您的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 
相關問題