【问题标题】:May I use Strawberry Perl and ActiveState Perl simultaneously on one computer?我可以在一台计算机上同时使用 Strawberry Perl 和 ActiveState Perl 吗?
【发布时间】:2012-04-02 08:07:37
【问题描述】:

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

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

【问题讨论】:

  • Re“由于某种原因”:你的意思是“由于同样的原因”

标签: perl strawberry-perl activeperl activestate


【解决方案1】:

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

【讨论】:

  • 感谢您的澄清!那么如果在环境路径Active State perl 有优先级,而我想使用Strawberry one,那我该怎么办呢?我可以喜欢 'Saiful' 在指定 #!C:\strawberry\perl\bin\perl 的 perl 脚本中所说的话吗?还是有更建议的解决方案?谢谢!
【解决方案2】:

我在我的 Windows 7 Pro 实例上同时安装了 ActivePerlStrawberry Perl。我的 PATH 变量顺序决定了我的 Perl 偏好。例如,为了使用 ActivePerl,我将 PATH 设置为这样的:

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

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

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

【讨论】:

  • 谢谢!这真的很有帮助。我现在就试试这个。
  • 如果我没记错的话,shebang 在 Windows 中会被忽略。我说的对吗?
  • 它被windows忽略,但是当默认的perl解析文件时,它会将控制权交给shebang行中提到的程序。
【解决方案3】:

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

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

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

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

【讨论】:

  • AS 版本需要商业版 Perl。现在有可用于 Strawberry Perl 的 berrybrew 工具。
【解决方案4】:

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

@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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-10
    • 2014-07-23
    • 1970-01-01
    • 2010-09-25
    • 2012-07-14
    相关资源
    最近更新 更多