इस गुप्त सिंटैक्स को अलंकृत डबल-ब्लेड तलवार के रूप में जाना जाता है , और इसे आमतौर पर निम्न के रूप में दर्शाया जाता है:
<<m=~m>>
Comments here
m
;
यह मल्टी-लाइन टिप्पणियों के लिए एक हैक है, जो कि हाइडरोक सिंटैक्स और मैच ऑपरेटर ( =~
) >
को सीमांकक के रूप में उपयोग करता है।
ध्यान दें, स्लैश के /
रूप में, मिलान के लिए सीमांकक के रूप में उपयोग नहीं किया जा रहा है, 'एम' ऑपरेटर की आवश्यकता है। उदाहरण के लिए $my_var =~ /test/
, इसके बराबर है $my_var =~ m>test>
, जबकि $my_var =~ >test>
अमान्य होगा।
इस तथ्य पर ध्यान दें कि m
आपके स्निपेट में पहला चरित्र एकल उद्धरणों से घिरा हुआ है, जिसका अर्थ है कि चर $a
और $b
चर प्रक्षेपित नहीं होंगे। यदि इन उद्धरणों को छोड़ दिया गया था (मेरे प्रदान किए गए कोड उदाहरण के अनुसार) पर्ल स्वचालित रूप से अंतिम मार्कर में दोहरे उद्धरण जोड़ देगा और किसी भी बाद के चर को प्रक्षेपित किया जाएगा। यह समस्या पैदा करेगा अगर $a
और $b
अब परिभाषित नहीं हैं और आप उपयोग कर रहे हैं use warnings;
।
अलंकृत डबल-ब्लेड उदाहरण को समझने के लिए आसान बनाने के लिए (लेकिन अभी भी अनुशंसित नहीं है), हम लिख सकते हैं:
<<"END" =~ //
Comments here
END
;
ध्यान दें कि =~ //
यह निरर्थक है, इसलिए यह इसके बराबर है:
<<"END";
Comments here
END
जो कि शून्य संदर्भ में मानक हर्डोक सिंटैक्स है।
मैं इसे उत्पादन कोड में उपयोग करने की सलाह नहीं दूंगा क्योंकि शून्य संदर्भ में एक स्ट्रिंग समस्या पैदा कर सकती है। इसके अलावा यह कोड सबसे अनुभवी पर्ल प्रोग्रामरों के लिए एक सिर खरोंच है और इसे पढ़ने और बनाए रखने के लिए व्यर्थ है! यदि आप उचित बहु-पंक्ति टिप्पणियाँ बनाना चाहते हैं, तो मैं यहाँ पोड से चिपके रहने का सुझाव दूंगा जैसा कि यहाँ बताया गया है कि मैं पर्ल में एक बहु-पंक्ति टिप्पणी कैसे दर्ज करूँ?
आशा है कि यह इसे साफ करता है।