如何覆盖usr bin env perl

时间:2012-10-17 13:51:06

标签: perl unix

这只检查PATH变量吗?

我可以使用说PERL = / usr / somelocal / perl

来“覆盖”路径

由于

4 个答案:

答案 0 :(得分:4)

使用不同Perl二进制文件的三种方法:

  1. 在执行脚本之前设置PATH环境变量;例如PATH=/opt/alternative-perl/bin:$PATH /path/to/your/script.pl
  2. 执行Perl二进制文件直接使用并使用脚本名称作为其参数:/opt/alternative-perl/bin/perl /path/to/your/script.pl
  3. 如果您的$PATH包含一个“坏”Perl二进制文件所在目录之前的目录,那么您可以在这样的目录中放置符号链接到“好”的Perl二进制文件。但是,这很麻烦,只适用于某些情况,但它比前两个解决方案更为永久。
  4. 如果您对该脚本有写入权限并且您愿意修改它,那么@ krishnang的回复适用:修改第一行以指向要使用的二进制文件,例如: #!/opt/alternative-perl/bin/perl

答案 1 :(得分:0)

您可以在脚本的开头使用它:

#!/usr/somelocal/perl

请参阅Shebang statement

答案 2 :(得分:0)

您可以指定要使用的perl二进制文件的完整路径。 env 不是必需的。

答案 3 :(得分:0)

三个选项:

  • 请勿使用#!/usr/somelocal/perl script.pl
  • 修复路径(PATH="/usr/somelocal:$PATH" script.pl
  • 修正错误的#!。 (#!/usr/somelocal/perl