अगर मैं एक .pm
फ़ाइल है, वहाँ मेरे @INC
पथ पर रखकर बिना एक तरह से मैं इसे use
सकता है? मुझे लगता है कि मेरी विशेष उपयोग के मामले में स्पष्ट हो सकता है - संबंधित पथ का उपयोग कर या @INC
को इस निर्देशिका जोड़ने से साफ।पर्ल का उपयोग/निरपेक्ष पथ की आवश्यकता है?
संपादित करें: स्पष्टीकरण:।
मैं आवश्यकता @INC
में हर आइटम के माध्यम से पुनरावृति करने के लिए से बचने के लिए, और बदले सीधे निर्दिष्ट जो फ़ाइल मैं में दिलचस्पी है उम्मीद थी उदाहरण के लिए, Node.js में, require('something')
होगा पथों की सूची खोजें, लेकिन require('/specific/something')
सीधे जहां मैं इसे कहूंगा वहां जाऊंगा।
पर्ल में, मुझे विश्वास है कि यह एक ही require
में पाया कार्यक्षमता है नहीं हूँ, लेकिन यह काम करने लगता है।
हालांकि, use
बयानों को शब्दकोष की आवश्यकता है। इसने मुझे एक पूर्ण पथ में प्रवेश करने के तरीके पर थोड़ा फंस दिया है। (अस्थायी रूप से, कोई डर नहीं, कि क्या use lib
भी करता है)
use lib '/path/to/Perl_module_dir'; # can be both relative or absolute
use my_own_lib;
आप @INC
खुद के द्वारा संशोधित कर सकते हैं:
'उपयोग मॉड्यूल' से पहले lib 'कथन का उपयोग करें' आपके मामले के लिए सही होगा। लेकिन आप 'आवश्यकता' का उपयोग क्यों नहीं कर सकते। यह आपकी समस्या के लिए अधिक उपयुक्त है। इसके अलावा आप पूरे प्रोजेक्ट या एप्लिकेशन के लिए उस निर्देशिका को लागू करने के लिए अपाचे conf में 'SetEnv PERL5LIB' पर्यावरण चर डाल सकते हैं। –
मुझे '.pm' फ़ाइल की आवश्यकता है। मैंने कोशिश नहीं की है, लेकिन ऐसा प्रतीत नहीं होता है कि यह सही काम करेगा। मैं आमतौर पर मॉड्यूल में 'CGI :: ReadParse();' या 'CGI' का उपयोग करता हूं: cgi '; मुझे नहीं पता कि मैं '.pm 'फ़ाइल के लिए' आवश्यकता 'के साथ ऐसा कैसे कर सकता हूं, लेकिन अगर मैं इसे' आवश्यकता 'के साथ कर सकता हूं, तो यह वास्तव में मेरी समस्या का समाधान करेगा। –
यह काम करता है। इस तरह की कोशिश करें 'Newmodule.pm "की आवश्यकता है;' और फिर 'नया मॉड्यूल :: उपनाम();' कॉल करें। यह ठीक निष्पादित करता है। –