【发布时间】:2019-07-10 12:29:56
【问题描述】:
我已经在我的 Windows 机器上设置了一个本地 Perl Web 环境。我正在处理的应用程序最初来自 Linux 服务器,因此源 .pl 文件的 shebang 如下所示:
#!/usr/bin/perl
这会在我的 Windows 开发机器上导致以下错误:
(OS 2)The system cannot find the file specified.
是否可以更改我的 Apache 2 配置,以便在我的 Windows 机器上忽略 shebang?当然我可以将shebang设置为#!c:\perl\bin\perl.exe,这很明显;但问题在于部署更新的文件。显然,在每次部署时将其改回是非常不方便的。我在 Windows 7 上使用 ActivePerl。
更新:
我应该提到我需要保留 shebang,以便脚本可以在我们的共享托管 Linux 生产服务器上运行。如果我没有这个约束并且我不必使用 shebang,那么显而易见的答案就是不使用它。
【问题讨论】:
-
您的很多问题都受到 XY 问题的困扰 (perlmonks.org/index.pl?node_id=542341)。你问你认为解决方案是什么,而不是问问题。在这种情况下,我认为您实际上并不需要跨平台的 shebang 线,您只需要使用 Apache 2 在 Windows 7 上适用于 ActivePerl 的线。
-
@brian 太棒了!谢谢你的提示。我一直都知道我这样做,这就是问题所在。我将尝试在未来的答案中询问问题,而不是已经决定解决方案。
-
好吧,既然您已经改变了问题,那就容易多了:您不需要在脚本中添加 shebang 行。除非您希望系统确定要调用哪个解释器,否则不需要它在那里。在你的情况下这并不重要。
-
@brian 问题已更新。
标签: windows perl apache2 activeperl shebang