如果我在一个系统上同时拥有/usr/bin/perl和/usr/local/bin/perl可用,我应该使用哪一个?
这取决于:在某些系统上,例如 BSD 打包,/usr/local/bin可能是包安装可执行文件的目录。在这种情况下,它会更新(也许更好),但/usr/bin/perl会更稳定。
您可以使用perl -V查看哪个具有更新的版本号。有时/usr/local/bin(在多用户系统上)的内容并不是真正更新。
通常的折衷办法是让用户决定,通过使用env在认领/ hashbang线(但同样,该路径到env可以因系统而异)。shebang 行是指脚本的第一行,它可能类似于以下内容之一:
#!/usr/bin/perl
#!/usr/bin/perl -w
#!/usr/bin/env perl
Run Code Online (Sandbox Code Playgroud)
前两个指定运行 Perl 的目录。作为奖励,此表单允许传递选项,例如-w(用于打开警告)。最后一行使用env程序perl通过搜索用户PATH环境变量中列出的目录来选择第一次出现的。
也可以运行这样的脚本:
perl myscript
Run Code Online (Sandbox Code Playgroud)
which (like env) 告诉 shellperl从PATH.
一个明确的
./perl myscript
Run Code Online (Sandbox Code Playgroud)
当然会覆盖PATH. 但是带有 shebang 行的脚本是大多数人使用 Perl 脚本的方式(Perl 单行是另一回事)。
进一步阅读:
/usr/local/bin