/ / पर्ल - perl में 'उपयोग मॉड्यूल' कथन में उत्पन्न चेतावनी को बंद करने का कोई भी तरीका

पर्ल - perl में 'उपयोग मॉड्यूल' कथन में उत्पन्न चेतावनी को बंद करने का कोई भी तरीका

मैं वर्तमान में उपयोग कर रहा हूँ XML::LibXML मेरी पर्ल स्क्रिप्ट में मॉड्यूल। XML::LibXML मॉड्यूल हम वर्तमान में हमारी मशीनों पर उपयोग कर रहे हैं के एक नए संस्करण के खिलाफ संकलित किया गया था libxml2 पुस्तकालय, और उपयोग कथन निम्नलिखित चेतावनी उत्पन्न करता है:

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

चेतावनी मेरे प्रदर्शन को प्रभावित नहीं करती हैस्क्रिप्ट। मैंने अपने पर्यवेक्षक से बात की है और वह कहती है कि त्रुटि को हमारे वर्तमान उद्देश्यों के लिए पूरी तरह से अनदेखा किया जा सकता है। क्या सभी चेतावनियों को बंद किए बिना अस्थायी रूप से इस चेतावनी को बंद करने का कोई तरीका है? मैंने इसे संलग्न करने की कोशिश की use कोड ब्लॉक के अंदर कथन {} और चेतावनी बंद कर दिया no warnings;, लेकिन मुझे अभी भी चेतावनी मिली है।

उत्तर:

जवाब के लिए 3 № 1

आप चेतावनियों को रोक सकते हैं, यहां तक ​​कि ऐसे लोगों को भी जिन्हें स्पष्ट कॉल के परिणामस्वरूप जारी किया गया है warn सेटिंग द्वारा, समारोह $SIG{__WARN__}.

एक साधारण कामकाजी उदाहरण (Ysth की टिप्पणी के लिए धन्यवाद धन्यवाद):

mod.pm:

package mod;

sub method {
print "This is mod::methodn";
}

warn "WE DO NOT WANT THIS WARNINGn";

1;

foo.pl:

#!/usr/bin/perl

use strict;
use warnings;

BEGIN {
local $SIG{__WARN__} = sub {};
require mod;
mod::->import();
}

warn "Normal warnings workn";
mod::method();

आउटपुट है:

Normal warnings work
This is mod::method

और मैंने पुष्टि की है कि सेटिंग की टिप्पणी कर रहे हैं $SIG{__WARN__} प्रकट होने के लिए "इच्छित नहीं" चेतावनी का कारण बनता है।