मैं वर्तमान में उपयोग कर रहा हूँ 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__}
प्रकट होने के लिए "इच्छित नहीं" चेतावनी का कारण बनता है।