से वैरिएबल को असाइन करें मैं पेर्ल के लिए अपेक्षाकृत नया हूं और check_ilo2_health.pl में कोड का एक उदाहरण स्निपेट है जिसमें सिंटैक्स का एक टुकड़ा है जिसे मैं समझ नहीं पा रहा हूं कि यह कैसे काम करता है या क्यों। कोड स्निपेट SSL क्लाइंट डेटा को पार्स कर रहा है, इस मामले में एक्सएमएल, रेखा से लाइन।पर्ल, रेगेक्स मैच
if ($line =~ m/MESSAGE='/) {
my ($msg) = ($line =~ m/MESSAGE='(.*)'/); #<---- HERE
if ($msg !~ m/No error/) {
if ($msg =~ m/Syntax error/) { #...etc
प्रश्न में एक्सएमएल का एक उदाहरण:
<RESPONSE
STATUS="0x0000"
MESSAGE='No error'
/>
तो इस मामले में अगर बयान एक्सएमएल नमूना की संदेश लाइन ले जाता है। मैं समझता हूं कि मेरा ($ msg) वैरिएबल को एक प्रकार की सूची के रूप में मानता है और मैं समझता हूं कि नियमित अभिव्यक्ति कैसे मेल खाते हैं; हालांकि, मुझे समझ में नहीं आता है कि $ msg से कोई त्रुटि नहीं है। लगता है कि पर्ल कंटैक्स सिंटैक्स के साथ खेल रहा है और इस तरह काम करने के लिए। हालांकि यह काम करता है मैं जानना चाहता हूं कि यह कैसे काम करता है। किसी भी तरह की सहायता की सराहना की जाएगी।
आप '= ~' या '! ~', उन रहे हैं [बाध्यकारी ऑपरेटरों] की बात कर रहे हैं (http://perldoc.perl.org/perlop.html#Binding-Operators)। –