我可以在一台计算机上同时使用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