gpt4 book ai didi

perl - 在 Perl 中关闭 'use Module' 语句中生成的警告的任何方法

转载 作者:行者123 更新时间:2023-12-05 03:14:03 25 4
gpt4 key购买 nike

我目前在我的 Perl 脚本中使用 XML::LibXML 模块。我们当前在机器上使用的 XML::LibXML 模块是针对较新版本的 libxml2 库编译的,使用语句会生成以下警告:

Warning: XML::LibXML compiled against libxml2 20708, but runtime libxml2 is older 20706

警告不会影响我的脚本的性能。我已经和我的主管谈过了,她说对于我们目前的目的来说,这个错误可以完全忽略。有没有办法暂时关闭此警告而不关闭所有警告?我尝试将 use 语句包含在代码块 {} 中并关闭警告并设置为 no warnings;,但我仍然收到警告.

最佳答案

您可以通过设置 $SIG{__WARN__} 来禁止警告,即使是像这样由于显式调用 warn 函数而发出的警告。

一个简单的工作示例(由于 ysth 的评论而改进):

mod.pm:

package mod;

sub method {
print "This is mod::method\n";
}

warn "WE DO NOT WANT THIS WARNING\n";

1;

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();

输出是:

Normal warnings work
This is mod::method

并且我已经确认注释掉 $SIG{__WARN__} 的设置会导致出现“DO NOT WANT”警告。

关于perl - 在 Perl 中关闭 'use Module' 语句中生成的警告的任何方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27556539/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com