gpt4 book ai didi

perl - 我应该为 Perl 脚本的 shebang 行使用什么?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:27:23 26 4
gpt4 key购买 nike

将这些中的哪一个用作 Perl 脚本的 shebang 行更好或更快?

#! perl

#! perl.exe

#! fullpath/perl(/perl.exe)

#! partialpath/perl(/perl.exe)

而且,当使用 #!perl 时,当它在特定系统上运行时,我如何在脚本中找出我正在使用的 perl 解释器,以便我可以将那个解释器放入 shebang行?


而且,如果使用 /path/path/perl,是否允许将 *... 用于文件夹?

最佳答案

如果您必须硬编码#!,请使用#!/usr/bin/env perl。为什么?您希望 Perl 程序与用户首选的 Perl 一起运行。这将是他们 PATH 中的第一个。 #!perl 没有按照我的意思去做,它不搜索用户的 PATH,#!/usr/bin/env perl 是你实现它的方式。 /usr/bin/env 将始终存在于 Unix 系统上。

如果用户使用的是 Windows,正如其他人指出的那样,那没有关系。 Windows 不使用#!它使用文件扩展名关联。确保您的程序名为 foo.pl 或其他名称,并且它会运行。但包括 #!无论如何行,因为一些实用程序和编辑器会使用它。

如果您要发送代码,请让安装程序处理。 MakeMaker/Makefile.PLModule::Build/Build.PL 都会改变你的 #!行以匹配用户用于安装的 perl。他们会为您解决这个问题。

如果您正在安装代码供您自己的生产使用,您应该使用特定 perl 副本的完整路径。哪个perl副本?一个特定于您的项目。这是否意味着您需要为每个项目编译 perl?不,你可以做一个符号链接(symbolic link)。项目 foo 可能有 /usr/local/bin/fooperl 指向 /usr/bin/perl5.18。使用 #!/usr/local/bin/fooperl。现在,如果您决定升级 perl,您可以通过更改符号链接(symbolic link)来针对每个项目进行升级。

关于perl - 我应该为 Perl 脚本的 shebang 行使用什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32664160/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com