是否可以在不使用SET或操纵环境变量"PATH"的情况下使用不同版本的Perl?
我需要一种机制,允许我在不影响系统配置的情况下为不同的脚本使用不同版本的Perl。 (例如,我正在使用Perl 5.6.1处理某些脚本,并使用Perl 5.8.8处理其他Perl脚本)
是否可以在不使用SET或操纵环境变量"PATH"的情况下使用不同版本的Perl?
我需要一种机制,允许我在不影响系统配置的情况下为不同的脚本使用不同版本的Perl。 (例如,我正在使用Perl 5.6.1处理某些脚本,并使用Perl 5.8.8处理其他Perl脚本)
当我需要使用两个不同但非常不兼容的Perl版本时,我会使用一个古老的技巧:使用不同的后缀名:
例如,我的系统上安装了ClearQuest,并且必须使用(ClearQuest的Perl版本)来执行操作ClearQuest中的问题的脚本。然而,如果我需要操作我们数据库中的SQL数据,则必须使用ActivePerl,因为我无法将DBI
模块添加到中。
我做的是将*.pl
后缀名与ActivePerl相关联,将*.cqpl
后缀名与相关联。现在,当我执行以*.cqpl
结尾的脚本时,它使用一个Perl版本,而以*.pl
结尾的脚本则由另一个Perl版本执行。
要将后缀名与程序相关联,请进入Windows资源管理器窗口,并从“工具”菜单中选择“文件夹选项”。然后,单击“文件类型”选项卡。单击“新建”按钮并创建一个新扩展名以与文件相关联。然后,在已注册的文件类型窗口中选择它,并单击底部的“高级”按钮。
创建一个“打开”动作,并将其与要执行该后缀名的Perl的完整路径名称相关联。就像这样:
"C:\Perl\bin\perl.exe" "%1" %*
%*
很重要,这样你可以向程序传递其他参数。
在您的情况下,您可以使用 *.pl
来运行 Perl 5.8.8,使用 *.pl6
来运行 Perl 5.6。
甚至不需要将 Perl 的 bin
目录添加到您的路径中。只需键入脚本名称即可。
您可以随时使用您选择的 Perl 解释器运行脚本, 假设您在 C:/perl_56 和 C:/perl_58 上安装了两个不同版本的 Perl。
在 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 运行脚本。 不幸的是,在 Windows 上,您不能像在 Unix 系统上那样在脚本开头使用 "shebang"。