मान लें कि मेरे पास एक पर्ल क्लास है जिसमें एक DESTROY विधि है। इस विधि का उपयोग बाह्य संसाधन, जैसे फाइल हैंडल या डेटाबेस लेनदेन को स्पष्ट रूप से जारी करने के लिए किया जाता है।आप पर्ल में किसी वस्तु को स्पष्ट रूप से कैसे नष्ट कर सकते हैं?
इस कक्षा के एक उदाहरण को देखते हुए, मैं इसे स्पष्ट रूप से नष्ट करना चाहता हूं। इसका प्राथमिक उद्देश्य DESTROY विधि को बुलाया जाना है ताकि बाह्य संसाधन जारी किया जा सके। हालांकि, स्मृति से खुद को जारी किया गया "ऑब्जेक्ट" होना एक अतिरिक्त लाभ होगा।
मैं यह कैसे कर सकता हूं? मैंने सीधे DESTROY विधि को कॉल करने और ऑब्जेक्ट को संदर्भित करने वाले किसी भी चर को अपरिभाषित करने पर विचार किया है। जब तक आप स्वयं निर्देशात्मक ढांचे (Destructors और दो चरण कचरा संग्रहण कुछ रोचक जानकारी के लिए उस के बाद पैरा देखें)
आपको लगता है कि वस्तुओं को नष्ट कर रहे बिल्कुल के बाद वे unreferenced बन कुछ कर रहे हैं? क्या आप किसी भी आधिकारिक स्रोत के बारे में जानते हैं जो इसकी पुष्टि करता है? मैंने सोचा कि कचरा कलेक्टर द्वारा इस तरह के व्यवहार की गारंटी नहीं थी। – Sam
दस्तावेज़ मैंने उद्धृत किया: "जब किसी ऑब्जेक्ट का अंतिम संदर्भ दूर हो जाता है, तो ऑब्जेक्ट स्वचालित रूप से नष्ट हो जाता है"। लेकिन जैसा कि मैंने कहा, अगर आप किसी दिए गए बिंदु पर बाहरी संसाधनों को छोड़ना चाहते हैं तो इसे स्पष्ट करें। यह perl5 btw के लिए है, perl6 संभावित रूप से एक अंतर संग्रह योजना है। – Mat