加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

如何获取当前在perl模块中启用的一组警告检查?

发布时间:2020-12-15 21:59:42 所属栏目:大数据 来源:网络整理
导读:在 perllexwarn中定义了所有可能设置的警告. 但是这里没有什么,如何打印出我目前启用的警告. 例如.: use strict;use warnings;print warnings::enabled-pretty_print(); #fictional... 这怎么可能? 例: use strict;use 5.012;use warnings;my $aaa;say "$
在 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();

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读