यहाँ मैं प्राप्त करना चाहते हैं क्या करना है:मैं एक सबराउटिन को फिर से परिभाषित कैसे कर सकता हूं और बूढ़ा भी रख सकता हूं?
sub first {
print "this is original first";
}
*original_first = \&first;
sub first {
print "this is first redefined";
}
original_first(); # i expect this to print "this is original first"
first() # i expect this to print "this is first redefined"
मैंने सोचा था कि first
के लिए प्रतीक को सहेजकर, मैं बाद में मूल सबरूटीन कॉल करने के लिए (नाम original_first
से कम) में सक्षम है और यह भी सक्षम होने के लिए होगा first
पर कॉल करने के लिए, और एक को फिर से परिभाषित करें। हालांकि, अगर मैं original_first
पर कॉल करता हूं, तो मुझे अभी भी "यह पहली बार परिभाषित किया गया है"। मुझे यह काम करने के लिए क्या करना है?
क्या यह संभव है, जब आप 'पहले' प्रतीक को फिर से परिभाषित करते हैं, केवल कोड भाग को प्रभावित करने के लिए? – Geo
एक टाइपग्लोब में एक कोडफ (एक उप {...} द्वारा उत्पन्न) का असाइनमेंट केवल ग्लोब में कोड प्रविष्टि को प्रतिस्थापित करेगा। ग्लोब में कोई अन्य डेटाटाइप –
नहीं बदलेगा आप केवल विशिष्ट ब्लॉक के भीतर फ़ंक्शन को प्रतिस्थापित करने के लिए 'स्थानीय * पहले = उप {...};' का उपयोग भी कर सकते हैं। –