您不需要一个shebang行
shebang行是Perl脚本的代码的第一行,通常看起来像这样
#!/usr/bin/perl
shebang行是Perl二进制文件的路径,允许程序员直接调用Perl脚本,而不是将脚本文件名作为参数传递给Perl本身。
./myperltrick.pl #execute directly, no need to type 'perl' first
然而,shebang行并非强制的,它会降低Perl脚本的移植性(需要执行权限并维护shebang),并且会使脚本执行时难以确定正在调用的是哪个版本的Perl,这可能会使调试更加困难。
./myperltrick.pl
Cant locate Catalyst.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl .) at ./perltricks.pl line 2.
BEGIN failed--compilation aborted at ./perltricks.pl line 2.
BEGIN failed--compilation aborted.
# Hmm which version of Perl did I run ?
通过不包含shebang行,程序员可以少写一行代码,并通过将脚本的行为与执行程序分开来保持模块化。
perl myperltricks.pl #this works fine
由于Perl就是Perl,如果包含shebang行的脚本作为参数传递给Perl程序,Perl将尝试“按你的意图行事”,因此shebang行将被忽略。所以,写或不写shebang行,但您不需要它。
本文最初发布在PerlTricks.com。
标签
反馈
这篇文章有什么问题吗?请在GitHub上打开一个issue或pull request来帮助我们。