2012-11-26 23 views
6

मैं अपना खुद का मॉड्यूल बना रहा हूं, इसे X::Y पर कॉल करें। बेशक, मॉड्यूल X/Y.pm फ़ाइल में होगा।एक पर्ल मॉड्यूल अपना रास्ता कैसे ढूंढ सकता है?

मान लें कि Y को बाहरी प्रोग्राम, prog पर कॉल करने की आवश्यकता है। आदर्श रूप से मैं को X में रखना चाहता हूं, इसलिए मैं X/prog चला सकता हूं। मैं हार्डकोड X/prog एस पूर्ण पथ नहीं चाहता हूं, और वर्तमान कार्यशील निर्देशिका सेट के बावजूद मॉड्यूल को काम करने के लिए।

मैं मॉड्यूल के अंदर से मॉड्यूल का पूरा पथ कैसे ढूंढ सकता हूं? या ऐसा करने का एक बेहतर तरीका है?

उत्तर

9

वर्तमान में निष्पादित स्रोत फ़ाइल का पूरा पथ पर्ल के __FILE__ विशेष शाब्दिक द्वारा प्रदान किया जाता है।

हालांकि मैं बाहरी प्रोग्राम स्थापित करना पसंद करूंगा जहां यह सामान्य रूप से होगा, और पथ या तो पर्ल कोड में स्थिर के रूप में कोडित किया गया है या PATH पर्यावरण परिवर्तक में शामिल है।

-1

एक बार मॉड्यूल लोड होने के बाद, यह पथ वैश्विक %INC चर में है। , .pm

तो संलग्न मॉड्यूल X::Y के स्थान खोजने के लिए /

  • के लिए पैकेज नाम पर

    1. परिवर्तन :: तुम करोगी: यह देखने के लिए, आपको एक सरल रूपांतरण करने की ज़रूरत है $INC{"X/Y.pm"} में देखें। - निर्देशिका है कि स्क्रिप्ट

      Neil Bower's CPAN modules for getting a module's path (स्क्रिप्ट के भीतर ही या एक पैकेज यह द्वारा लोड के भीतर उपयोग के) से चलाया गया था पाता है - विस्तृत समीक्षा

      FindBin:

  • 4

    Borodin सवाल लेकिन कुछ संबंधित जानकारी जवाब एक और मॉड्यूल के पथ खोजने के लिए मॉड्यूल के।