当前位置:  开发笔记 > 编程语言 > 正文

我应该使用命令行开关或pragma打开Perl警告吗?

如何解决《我应该使用命令行开关或pragma打开Perl警告吗?》经验,为你挑选了4个好方法。

开始Perl脚本时,下面两个例子之间有区别吗?如果是这样,我何时会使用一个而不是另一个?

例1:

#!/usr/bin/perl

use warnings;

例2:

#!/usr/bin/perl -w

Leon Timmerm.. 31

使用该开关将启用程序使用的所有模块中的所有警告.使用pragma只能在该特定模块(或脚本)中启用它.理想情况下,您在所有模块中都使用警告,但通常情况并非如此.当您使用非警告安全的第三方模块时,使用此开关可能会收到很多警告.

所以,理想情况下这并不重要,但实际上,最终用户通常不会使用交换机,而是使用pragma.



1> Leon Timmerm..:

使用该开关将启用程序使用的所有模块中的所有警告.使用pragma只能在该特定模块(或脚本)中启用它.理想情况下,您在所有模块中都使用警告,但通常情况并非如此.当您使用非警告安全的第三方模块时,使用此开关可能会收到很多警告.

所以,理想情况下这并不重要,但实际上,最终用户通常不会使用交换机,而是使用pragma.



2> friedo..:

-w命令行开关接通全局为整个解释警告.另一方面,它use warnings是一个"词汇编纂",仅适用于使用它的词汇范围.通常,您将它放在文件的顶部,以便它适用于整个文件,但您也可以将其范围限定为特定的块.此外,no warnings如果您需要执行其他警告生成行为,您可以使用它在块内暂时关闭它们.如果你已经上场-w,你不能这样做.

有关词法警告如何工作的详细信息,包括如何打开和关闭它们的各种子集,请参阅perllexwarn文档.


你对"没有警告"的观点是我所期待的,但快速测试(perl -w -e"没有警告;打印$ a;")表明,至少在我的perl上,"没有任何警告"仍然有效-w.

3> runrig..:

"-w"较旧并且曾经是打开警告的唯一方法(实际上"-w"只启用全局$ ^ W变量)."使用警告;" 现在更受欢迎(从5.6.0及更高版本开始),因为(如前所述)它具有词法而不是全局范围,您可以打开/关闭特定警告.并且不要忘记也开始"使用严格"; :-)



4> rjray..:

另一个值得注意的区别是,"使用警告"编译指示还允许您选择要启用的特定警告(同样,"无警告"允许您选择警告以禁用).

推荐阅读
携手相约幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有