我正在运行CentOS 5.4,默认情况下只有版本5.8的perl可用,我有一个需要perl 5.10的程序,所以我在CentOS上编译了perl 5.10。如何指定我想运行程序的perl,因为perl命令默认使用5.8。
答案 0 :(得分:13)
我添加了自己的声音,建议不要乱用系统perl。
还没有人提到App::perlbrew。它允许您拥有多个Perl版本并轻松切换它们。这当然可以手动完成,但是使用这个工具为你做这件事要容易得多;来自Pod -
# Install some Perls
perlbrew install perl-5.12.2
perlbrew install perl-5.8.1
perlbrew install perl-5.13.6
# See what were installed
perlbrew list
# Switch perl in the $PATH
perlbrew switch perl-5.12.2
perl -v
# Switch to another version
perlbrew switch perl-5.8.1
perl -v
# Switch to a certain perl executable not managed by perlbrew.
perlbrew switch /usr/bin/perl
# Or turn it off completely. Useful when you messed up too deep.
perlbrew off
# Use 'switch' command to turn it back on.
perlbrew switch perl-5.12.2
答案 1 :(得分:5)
程序文件的第一行应该引用您想要使用的perl二进制文件: e.g。
#!/usr/bin/perl
您可能还想更改PATH变量,以便在5.8二进制目录之前列出perl 5.10二进制文件所在的目录。 e.g。
export PATH=/path/to/perl/5.10:$PATH
答案 2 :(得分:3)
我喜欢在/usr/local/bin
中为我的不同perl可执行文件创建符号链接:
$ [sudo] ln -s /path/to/perl5.10.1.exe /usr/local/bin/perl510
$ [sudo] ln -s /path/to/perl5.13.8.exe /usr/local/bin/perl513
$ ... etc. ...
$ # and just for completeness
$ ln -s /usr/bin/perl /usr/local/bin/perl58
然后只需调用:
$ perl510 script_to_use_with_v5.10.pl
答案 3 :(得分:1)
有一种称为替代品的工具旨在有效地处理这类问题。它基本上为您提供了一种通过操纵符号链接在不同版本的应用程序之间切换的简便方法。你的bin目录。
在终端中说“man alternative”(如果没有安装,请使用yum install alternative)。
答案 4 :(得分:0)
将PATH环境变量设置为指向新的perl可执行文件。例如
export PATH=/newpath/perl:$PATH
答案 5 :(得分:0)
BTW,可以从CentOS 5.x的EPEL存储库安装perlbrew包。我最初尝试安装这个rpm,但它有许多依赖项,所以我选择将EPEL存储库添加到我的盒子上的yum repos列表中。
答案 6 :(得分:0)
解决方案有两个部分......首先编辑需要特定版本的myscript.pl
(FragmentActivity) ((ContextWrapper) getContext()).getBaseContext()
上面的对脚本的正常执行没有影响...当你想要上面的myscript.pl使用特定的perl版本时,创建一个包含
的包装脚本old
#!/usr/bin/perl
new
#!/usr/bin/env perl
这样,脚本的其他调用保持不变,它们只使用默认的perl,而启动器包装脚本使用选择的perl版本执行相同的myscript.pl脚本