XML::LibXML我目前正在Perl 脚本中使用该模块。XML::LibXML我们当前在机器上使用的模块是针对较新版本的库进行编译的,libxml2并且 use 语句生成以下警告:
Warning: XML::LibXML compiled against libxml2 20708, but runtime libxml2 is older 20706
Run Code Online (Sandbox Code Playgroud)
该警告不会影响我的脚本的性能。我已经和我的主管谈过了,她说对于我们当前的目的来说,这个错误可以完全忽略。有没有办法暂时关闭此警告而不关闭所有警告?我尝试将use语句包含在代码块内{}并使用 关闭警告no warnings;,但我仍然收到警告。
warn您可以通过设置 来禁止警告,即使是像这样由于显式调用函数而发出的警告$SIG{__WARN__}。
一个简单的工作示例(由于 ysth 的评论而改进):
mod.pm:
package mod;
sub method {
print "This is mod::method\n";
}
warn "WE DO NOT WANT THIS WARNING\n";
1;
Run Code Online (Sandbox Code Playgroud)
foo.pl:
#!/usr/bin/perl
use strict;
use warnings;
BEGIN {
local $SIG{__WARN__} = sub {};
require mod;
mod::->import();
}
warn "Normal warnings work\n";
mod::method();
Run Code Online (Sandbox Code Playgroud)
输出是:
Normal warnings work
This is mod::method
Run Code Online (Sandbox Code Playgroud)
我已经确认注释掉 的设置会$SIG{__WARN__}导致出现“不想要”警告。
| 归档时间: |
|
| 查看次数: |
683 次 |
| 最近记录: |