Windows中Perl的版本处理

时间:2010-11-23 14:09:43

标签: perl

可以在不使用SET或操纵环境变量“PATH”的情况下使用不同版本的Perl

我需要一种机制,允许我在不影响系统配置的情况下为不同的脚本使用不同版本的Perl。 (例如,我对某些脚本使用Perl ver 5.6.1,对其他Perl脚本使用perl 5.8.8)

3 个答案:

答案 0 :(得分:2)

当我有两个不同但非常不兼容的Perl版本我必须使用时,这是我做的一个老技巧:使用不同的后缀:

例如,我的系统上有ClearQuest,必须使用cqperl(这是ClearQuest的Perl版本)来执行操作ClearQuest中的问题的脚本。但是,如果我必须操纵数据库中的SQL数据,我必须使用我的ActivePerl,因为我无法将DBI模块添加到cqperl

我所做的是将*.pl后缀与ActivePerl相关联,将*.cqpl后缀与cqperl相关联。现在,当我执行脚本并以*.cqpl结束时,它使用一个版本的Perl,而以*.pl结尾的脚本由另一个版本的Perl执行。

要将后缀与程序相关联,请进入Windows资源管理器窗口,然后从工具菜单中选择文件夹选项。然后,单击文件类型选项卡。单击 New 按钮并创建一个新的扩展以与该文件关联。然后,在“已注册的文件类型”窗口中选择它,然后单击底部的“高级”按钮。

创建Open操作,并将其与要执行该后缀的Perl的完整路径名相关联。像这样:

"C:\Perl\bin\perl.exe" "%1" %*

%*非常重要,因此您可以将其他参数传递给您的程序。

在您的情况下,您可以将*.pl用于Perl 5.8.8,将*.pl6用于Perl 5.6。

您甚至不需要在路径中放置Perl的bin目录。只需输入脚本的名称就可以了。

答案 1 :(得分:2)

在Unix上:使用shebang line。

在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”。

P.S。我建议将整个环境升级到5.12.2 - Perl有许多新的有用功能。

答案 2 :(得分:1)

您可以随时使用您选择的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 here

通过不同版本的perl运行脚本。 不幸的是,你不能像在unix系统上那样在Windows的脚本开头使用“shebang”。