应该使用 /usr/bin/perl 或 /usr/local/bin/perl 中的哪一个?

CJ7*_*CJ7 2 perl executable

如果我在一个系统上同时拥有/usr/bin/perl/usr/local/bin/perl可用,我应该使用哪一个?

Tho*_*key 5

这取决于:在某些系统上,例如 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) 告诉 shellperlPATH.

一个明确的

./perl myscript
Run Code Online (Sandbox Code Playgroud)

当然会覆盖PATH. 但是带有 shebang 行的脚本是大多数人使用 Perl 脚本的方式(Perl 单行是另一回事)。

进一步阅读:

  • 这是我第一次听说 shebang 被称为“哈希标签行”...... (2认同)