【发布时间】:2011-05-14 11:55:29
【问题描述】:
可以在不使用 SET 或操作环境变量的情况下使用不同版本的 Perl "PATH"
我需要一种机制,允许我为不同的脚本使用不同版本的 Perl,而不会影响系统配置。 (例如,我对某些脚本使用 Perl 5.6.1 版,对其他 Perl 脚本使用 perl 5.8.8)
【问题讨论】:
标签: perl
可以在不使用 SET 或操作环境变量的情况下使用不同版本的 Perl "PATH"
我需要一种机制,允许我为不同的脚本使用不同版本的 Perl,而不会影响系统配置。 (例如,我对某些脚本使用 Perl 5.6.1 版,对其他 Perl 脚本使用 perl 5.8.8)
【问题讨论】:
标签: perl
当我必须使用两个不同但又非常不兼容的 Perl 版本时,这是一个老把戏:使用不同的后缀:
例如,我的系统上有 ClearQuest,并且必须使用cqperl(这是 ClearQuest 的 Perl 版本)来执行处理 ClearQuest 中问题的脚本。然而,如果我必须从我们的数据库中操作 SQL 数据,我必须使用我的 ActivePerl,因为我无法将 DBI 模块添加到 cqperl 中。
我所做的是将*.pl 后缀与ActivePerl 和*.cqpl 后缀与cqperl 相关联。现在,当我执行一个以*.cqpl 结尾的脚本时,它使用一个版本的Perl,而一个以*.pl 结尾的脚本由另一个版本的Perl 执行。
要将后缀与程序关联,请进入 Windows 资源管理器窗口并从 工具 菜单中选择 文件夹选项。然后,单击文件类型选项卡。单击New 按钮并创建一个新的扩展名以与文件关联。然后,在 Registered File Types 窗口中选择它,然后单击底部的 Advanced 按钮。
创建一个Open 操作,并将其与要执行该后缀的 Perl 的完整路径名相关联。像这样:
"C:\Perl\bin\perl.exe" "%1" %*
%* 很重要,因此您可以将其他参数传递给您的程序。
在您的情况下,您可以将 *.pl 用于 Perl 5.8.8 和 *.pl6 用于 Perl 5.6。
您甚至不需要将 Perl 的 bin 目录放在您的路径中。只需输入脚本的名称即可。
【讨论】:
在 Unix 上:使用 shebang 行。
在 Windows 上:安装 perl 时,通常会创建两个可执行文件:perl.exe 和 perl5.N.M.exe。例如。在我的草莓安装中,我有 perl.exe 和 perl5.10.1.exe。因此,如果两个 perls 都在 PATH 中,您可以将它们称为 perl5.6.1 和 5.8.8。 即“perl5.6.1 program.pl”。
附:我建议将整个环境升级到 5.12.2 - Perl 有许多新的有用功能。
【讨论】:
您总是可以使用您选择的 perl 解释器来运行您的脚本, 假设您在 с:/perl_56 和 c:/perl_58 中安装了 2 个不同的 perls。
在 CMD.exe 中你可以试试这个:
c:/perl_56/bin/perl.exe path_to_your_script here
和
c:/perl_58/bin/perl.exe path_to_your_script 在这里
通过不同版本的 perl 运行脚本。 不幸的是,您不能像在 unix 系统上那样在 Windows 脚本的开头使用“shebang”。
【讨论】: