मैं आमतौर पर इस तकनीक का उपयोग करता हूं। इसके उदासी मेरी पीएचपी दिनों से प्रेरित:
स्थितियों में इसका काम जहाँ आप जानते हैं, जहां किसी दिए गए फ़ाइल वर्तमान एक के सापेक्ष जाएगा, और प्रवेश की यकीन है कि यह में कहा जा सकता है बिंदुओं नहीं हैं या आसपास के कॉलटाइम पर पर्यावरण।
हालांकि, मैं आम तौर पर इस तकनीक का उपयोग केवल परीक्षण स्क्रिप्ट के लिए करता हूं जिसके लिए चीजों को अनुकरण करने के लिए डमी लाइब्रेरी की आवश्यकता होती है।
use File::Basename();
use Cwd ();
my $base_dir;
my $relative_path;
BEGIN {
$realitive_path = '../../' # Path to base of project relative to the current file
$base_dir = Cwd::realpath(File::Basename::dirname(__FILE__) .'/' . $relative_path);
}
use lib "${base_dir}/lib";
use Foo;
आदर्श रूप में वहाँ कुछ मॉड्यूल कहीं कि यह करता है होना चाहिए, अगर नहीं, मैं आधे से एक लिखने के लिए परीक्षा रहा हूँ:
use Some::Module();
use lib Some::Module::relative_self('../../lib', __FILE__);
स्रोत
2009-04-25 08:14:22
अपने जवाब मुझे नहीं कैसे एक रिश्तेदार स्थान से एक मॉड्यूल का उपयोग करने की थी –