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



我曾经删除过一次ActivePerl,所有安装的模块都丢失了。所以现在我对这类问题非常谨慎。由于某些原因,我现在想使用Strawberry Perl,同时保留ActiveState的ActivePerl。

这会导致兼容性问题吗?这明智吗?

这不会是一个问题,因为两个Perl实现都将在不同的目录中查找模块。也就是说,@INC条目将不同。

我在Windows上同时安装了ActivePerl和Strawberry Perl;7 Pro实例。我的PATH变量顺序决定了我的Perl偏好。例如,对于使用ActivePerl,我将PATH设置为如下所示:

C:Perl64bin;C:strawberryperlbin

您可以在脚本中使用shebang:来覆盖它

#!C:strawberryperlbinperl

您可以同时使用两个(许多)不同的Perl版本。

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

您可以使用Perlbrew(或其他模块)来帮助在计算机上保持多个Perl安装。

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

我找到了另一个解决方案。您可以将Perl代码嵌入到Windows批处理文件中。通过这种方式,您可以在执行Perl脚本或包含模块路径之前设置环境变量。

@echo off
cd %TEMP%
set perl_bindir=C:strawberryperlbin
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 Worldn";
__END__
:endofperl

相关内容

  • 没有找到相关文章