"perl" 和 "perl -w" 有什么区别?

7

我正在学习Perl,是一个非常新的用户。请问这些Perl代码之间有什么区别?

#!/usr/bin/perl

&

#!/usr/bin/perl -w

我撤销了你的编辑,因为在回答之后修改问题不是惯例。这会让答案看起来相当奇怪。 - TLP
@TLP 谢谢你,从你那里我才知道该怎么称呼它们。 - Raja G
只是作为一个深奥的注释,如果有人设置了PERL5OPT,可能没有任何区别。 - brian d foy
此外,您可能需要使用 #!/usr/bin/env perl 而不是 #!/usr/bin/perl。这在像 CentOS 5 这样的系统上尤为重要,因为较新版本的 PERL 可能安装在 /usr/local 中。或者,在安装了 MacPorts 的 OS X 上,PERL 可能位于 /opt/local/bin 中。 - jww
1个回答

13
这不是Perl代码,而是一个shebang,在Linux/Unix环境中用作告诉shell应该使用哪个程序来运行程序文件的方式。它在Windows中没有任何影响,但会激活使用的任何开关。 -w部分是Perl的开关,告诉它激活警告。您可以通过在命令提示符处键入perl -h来了解有关Perl命令行开关的更多信息。在perldoc perlrun中阅读更多内容。 -wuse warnings编译指示的旧版本,现在已经过时。虽然-w是全局的,但use warnings是词法的,并且可以选择性地激活。

谢谢你的回答。现在我有一个疑问,这些-w选项能帮助我们到什么程度?警告意味着什么类型的问题? - Raja G
2
@August 警告的作用是警示您代码中可能出现错误的潜在问题点。不仅修复错误,而且消除警告是一个好的实践。 - Ben Richards
1
@squiguy 是的,因为你可以选择你想要的特定错误,或者可以忽略你不想要的错误,比如 no warnings 'redefine' 如果你想要重新定义一个子程序。 - amon
4
在编写Perl代码时,使用use strict; use warnings;语句并学会如何处理警告和错误比其他任何单一的事情都更有帮助。不使用警告会导致错误默默地发生,使你无法知道出了什么问题。 - TLP
1
就像我所说的:“虽然-w是全局的,但use warnings是词法的,并且可以有选择性地激活。” - TLP
显示剩余6条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接