2012-04-02 60 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 
相关问题