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

标签 perl

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
因此,“未初始化”警告类别是“设置”,因为它会打印警告,但 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.



如果我理解正确,这意味着函数( enabledwarnif )仅适用于特定于模块的警告,不适用于标准类别。 (文档中的“has”之前可能缺少“that”。)

更新:似乎标准类别也有效,但仅在模块中:
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();

关于perl - 如何获取 perl 模块中当前启用的一组警告检查?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11074417/

相关文章:

python - 正则表达式查找 '&' 没有结尾分号的位置

regex - 以星号*开头的Perl标识符代表什么?

windows - 如何在 Windows 上同时使用 ActiveState 和 Strawberry perl

javascript - perl:不向浏览器返回任何内容

html - 使用 Perl XML::XSLT 生成 OUTLOOK 有问题的 HTML

Perl Mechanize,提交带有文件(图像)的表单?

c++ - SWIG:仅使用 header 和共享库为 Perl 包装 C++,无法定位可加载对象错误

perl - 使用 XML::TWIG 解析大型 xml 文件失败

regex - 在 Perl 中,如何打印从文件中读取的行,并删除了可选的前导空格?

linux - 不同发行版的脚本