0

我可以写一个没有第一行的 Perl 程序#!/path/吗?

谢谢你。

4

4 回答 4

8

#!仅当您想在 shell 提示符下直接调用脚本时才需要shebang ( ),例如./yourscript. 你总是可以perl yourscript跳过shebang。

于 2011-11-18T21:11:12.850 回答
6

如果您关心的是硬编码一个常量路径(例如 #!/usr/bin/perl 而不是 #!/usr/local/bin/perl),那么使用:

#!/usr/bin/env perl

这允许在您的 PATH 中寻找 Perl 解释器,从而使您的脚本更具可移植性(Windows 除外)。

于 2011-11-18T21:42:05.037 回答
4

是的,从perldoc perlrun(在-S开关下):

#!/bin/sh
eval 'exec /usr/bin/perl -wS $0 ${1+"$@"}'
    if $running_under_some_shell;

有关完整的故事,请参阅该文档。

于 2011-11-18T21:11:14.417 回答
0

如果你这样做,那么你需要显式调用 Perl。如果该行存在,则系统知道它是 Perl 脚本,因此当您使脚本可执行时,您只需编写 ./script

于 2011-11-18T21:12:01.183 回答