我可以在一台计算机上同时使用Strawberry Perl和ActiveState Perl吗?

时间:2012-04-02 08:07:38

标签: perl strawberry-perl activeperl activestate

我不是Perl的新手,但这个问题让我很困惑。

我曾经删除过一次ActiveState Perl,并且所有已安装的模块都丢失了。所以现在我对这类问题非常小心。由于某种原因,我现在想要使用Strawberry Perl,同时保持ActiveState Perl的使用。

这是否会导致兼容性问题?这是可取的吗?

4 个答案:

答案 0 :(得分:5)

这不会是一个问题,因为perl将查看模块的不同目录。也就是说,@INC条目将是不同的。

答案 1 :(得分:3)

我在Win7Pro上安装了ActiveState和Strawberry。我的PATH变量顺序决定了我的Perl偏好。例如,对于使用ActiveState,我将PATH设置为如下所示:

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

您始终可以使用shebang在脚本中覆盖此内容:

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

希望这有帮助。

答案 2 :(得分:2)

您可以一次使用两个(多个)不同的perl版本。

设置PATH变量以包含主perl路径(perl.exe的路径),以确保在使用perl script.pl启动程序时运行正确的perl。

您可以使用PerlBrew:http://perlbrew.pl/(或其他模块)来帮助在您的计算机中保留多个perl安装。

可在Windows上使用:http://code.activestate.com/ppm/App-perlbrew/

此致

答案 3 :(得分: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