在
perllexwarn中定义了所有可能设置的警告.
但是这里没有什么,如何打印出我目前启用的警告.
例如.:
use strict; use warnings; print warnings::enabled->pretty_print(); #fictional...
这怎么可能?
例:
use strict; use 5.012; use warnings; my $aaa; say "$aaa"; say warnings::enabled("uninitialized") ? "yes" : "no";
以上将输出:
Use of uninitialized value $aaa in string at y line 6. no
所以“未初始化”警告类别是“set”,因为它会打印一个警告,但是warnings :: enabled(“uninitialized”)不会返回true.
解决方法
阅读
perllexwarn
… functions that are useful for module authors. These are used when you
want to report a module-specific warning to a calling module has
enabled warnings via the “warnings” pragma.
如果我理解正确,这意味着功能(启用,警告)仅适用于特定于模块的警告,而不适用于标准类别. (在文档中的“有”之前可能缺少“该”).
更新:似乎标准类别工作,但只有在一个模块:
package MY; use warnings::register; sub S { my $x; print $x,"\t"; print warnings::enabled("uninitialized"),"\n"; } package main; use warnings; MY::S(); no warnings; MY::S();
原文地址:https://www.jb51.cc/Perl/171595.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。