擅长:python、mysql、java
<p>如果你不得不硬编码的话!,使用<code>#!/usr/bin/env perl</code>。为什么?您希望Perl程序使用用户首选的Perl运行。这将是他们的第一个节目。<code>#!perl</code>不符合我的意思,它不搜索用户的路径,<code>#!/usr/bin/env perl</code>就是这样实现的。<code>/usr/bin/env</code>在Unix系统上始终存在。</p>
<p>如果用户使用的是Windows,正如其他人指出的那样,这并不重要。Windows不使用#!它使用文件扩展名关联。确保您的程序被称为<code>foo.pl</code>或其他东西,它就会工作。但包括#!当一些实用程序和编辑器使用它时。</p>
<p>如果你要发送代码,让安装程序来处理。<code>MakeMaker/Makefile.PL</code>和<code>Module::Build/Build.PL</code>都将改变您的#!与用户用来安装的perl相匹配的行。他们会帮你解决这个问题的。</p>
<p>如果您要安装代码以供自己的生产使用,则应使用perl特定副本的完整路径。哪一个perl副本?一个特定于你的项目。这是否意味着您需要为每个项目编译perl?不,你可以做一个符号链接。foo项目可能在<code>/usr/bin/perl5.18</code>处有<code>/usr/local/bin/fooperl</code>点。使用<code>#!/usr/local/bin/fooperl</code>。现在,如果您决定升级perl,您可以通过更改符号链接来为每个项目进行升级。</p>