मैं यह पता लगाने की कोशिश कर रहा हूं कि एक पर्ल मॉड्यूल के लिए फ़ंक्शन संदर्भ कार्य कैसे करें। मुझे पता है कि इसे मॉड्यूल के बाहर कैसे करना है, लेकिन एक के अंदर? इस तरह कोड पर विचार करें:पर्ल मॉड्यूल में फ़ंक्शन संदर्भ कैसे लिखें?
==mymodule.pm==
1 sub foo { my $self = shift; ... }
2 sub bar { my $self = shift; ... }
3 sub zip {
4 my $self = shift;
5 my $ref = \&foo;
6 $self->&$foo(); # what syntax is appropriate?
7 }
==eof===
ऊपर लाइनों 5-6 देखें। (1) फ़ंक्शन संदर्भ को पहली जगह में परिभाषित करने के लिए सही वाक्यविन्यास क्या है, और (2) इसे संदर्भित करना?
इस बुला शैली में नोट करना महत्वपूर्ण बात यह है कि '$ self' है यह निर्धारित करने के लिए उपयोग नहीं किया जाता है कि किस विधि को कॉल करना है (जैसा कि आमतौर पर विधि ओओ-स्टाइल को कॉल करते समय होता है) - विधि पूरी तरह से '$ ref' से निर्धारित होती है, और '$ self' केवल $ ref के पहले तर्क के रूप में पारित होती है। इसके विपरीत अगर '$ ref' एक विधि का नाम था, तो इस मामले में हम उस विधि को' $ self' पर और फिर विरासत के पेड़ पर खोजना शुरू कर देंगे। – Ether
रैंडल "एक-एल" श्वार्टज़ होने के लिए उपरोक्त! वाह! –
@ जोनाथन: चलो समूह [एसएलएल] को लुप्तप्राय समूहों के समूह में नहीं बदलते हैं .. जॉन स्कीट फैनबॉय काफी खराब हैं। :/ – Ether