मैं वास्तव में इस को पता होना चाहिए, लेकिन मैं मुख्य रूप से लिनक्स के साथ काम किया है, मैक ओएस एक्स और Windows जो सभी एक निर्देशिका विभाजक के रूप में (/
) का उपयोग (Windows, या तो \
या /
।) ।पर्ल निर्देशिका विभाजक हैंडलिंग
इसका मतलब है कि जब मैं आमतौर पर पर्ल में प्रोग्राम लिखता हूं, तो मैं निर्देशिका विभाजक के रूप में /
का उपयोग कर सकता हूं और सब कुछ ठीक है। हालांकि, मुझे पता है कि File::Spec
फ़ाइल विभाजक (0 जो भी इसका मतलब है) के पोर्टेबिलिटी के लिए अनुमति देने का अनुमान है।
यदि मैं ऐसी प्रणाली पर हूं जो निर्देशिका विभाजक के रूप में आगे की स्लैश का उपयोग नहीं करता है, तो मैं समझता हूं कि उपयोगकर्ता डिफ़ॉल्ट विभाजक के साथ फ़ाइलों को इनपुट करने और डिफ़ॉल्ट विभाजक के साथ आउटपुट देखने में सक्षम होने की उम्मीद करते हैं। (उदाहरण के लिए, एक विंडोज उपयोगकर्ता इनपुट करेगा और उम्मीद करेगा कि आउटपुट C:\Users\smith\Documents
और C:/Users/smith/Documents
नहीं है), लेकिन पर्ल आंतरिक रूप से क्या करता है?
क्या मैं प्लेटफार्म निर्देशिका विभाजक के रूप में उपयोग करने के बावजूद, क्या मैं आंतरिक रूप से फ़ाइलों से निपटने के दौरान आगे की स्लैश का उपयोग कर सकता हूं। उदाहरण के लिए, मेरे पास एक निर्देशिका $dir
है और $file
नामक एक फ़ाइल है, और मैं फ़ाइल खोलना चाहता हूं। क्या मैं बस $dir/file
कह सकता हूं, या क्या मुझे मेरे नाम के अनुरूप File::Spec
का उपयोग करना है?
वास्तव में, पर्ल कार्यक्रमों की आवश्यकता होती है आगे निर्देशिका नाम में स्लैश करते हैं? मैं एक मॉड्यूल लिख रहा हूं, और कॉलिंग प्रोग्राम में फ़ाइल नाम वितरित कर दूंगा। क्या मुझे फ़ाइल को /foo/bar/fubar
के रूप में देना चाहिए या यदि सिस्टम प्रारंभिक मैकिंटॉश ओएस जैसे कॉलन का उपयोग करता है, तो :foo:bar:fubar
कहें?
क्या आप रास्तों के साथ क्या कर जा रहे हैं? यदि यह फ़ाइलों को पढ़ने और लिखने के लिए है, तो '/' ठीक है, और पर्ल आपके द्वारा किए गए कार्यों का पालन करेगा। यदि आप होस्ट कंप्यूटर के कमांड शैल या उस सिस्टम के अन्य प्रोग्राम्स द्वारा पार्स किए जाने के लिए कमांड तैयार कर रहे हैं, तो आपको उस प्लेटफॉर्म के नियमों का पालन करना होगा, और फ़ाइल :: स्पेक मदद कर सकता है। –