मान लें कि मैं Bar
नामक एक वर्ग बना रहा हूं। फ़ाइल Bar.pm
शुरू होता हैपर्ल क्लास नामकरण सम्मेलन
package Bar;
अन्य Bar
वर्गों के साथ टकराने से बचने के लिए, मैं एक उपनिर्देशिका Foo
में फ़ाइल डाल दिया। तो अब, जब मैं क्लास का उपयोग, मैं लिखने के लिए है
use Foo::Bar;
मेरा प्रश्न है, मैं Foo::Bar
के वर्ग का नाम बदलने की जरूरत है? दूसरे शब्दों में, मैं
package Foo::Bar;
को Bar.pm
की पहली पंक्ति को बदलने की जरूरत है? समस्या यह है कि, यदि मैं ऐसा करता हूं, तो मुझे अब कक्षा को Foo::Bar
के रूप में संदर्भित करना होगा, उदा।
my $obj = Foo::Bar->new();
Foo::Bar->doClassMethod();
जो कष्टप्रद है (एक ही समस्या this question में चर्चा की गई थी), खासकर जब से मैं कक्षा तरीकों के शौकीन हूँ।
क्या आप थोड़ा "होना" के अर्थ पर विस्तार कर सकते हैं? मैं पूछता हूं क्योंकि यह पैकेज नाम बदलने के बिना ** (संकलित और चलाता है) ** काम करता है। इसे बदलने के नतीजे क्या हैं? – shawkinaw
@shawkinaw यदि आप नहीं करते हैं, तो 'उपयोग' कथन की 'आयात' विधि सही वर्ग नहीं मिलेगी, और अन्य वर्ग विधियों सहित कन्स्ट्रक्टर (अक्सर) मिस्फीयर करेंगे। यह 'उपयोग' कथन में मामला गलत होने जैसा है। यह मामला-असंवेदनशील फाइल सिस्टम पर काम करता है, लेकिन केवल दुर्घटना से, और अन्य सभी प्रकार की चीजें हो जाती हैं। ऐसा मत करो। बस अपनी फाइल, पैकेज बनाएं, और सभी लाइनों का बिल्कुल उपयोग करें। अब से वर्षों में आपके पास कुछ और करने का कोई कारण हो सकता है, लेकिन यह केवल गंभीर और युद्ध-शब्द अनुभव के साथ आता है। यह अभी भी संदिग्ध है। – tchrist
ठीक है, स्पष्टीकरण के लिए धन्यवाद। – shawkinaw