यह perldoc -f open
में सब है:
EXPR शामिल न करने पर, एक ही नाम के अदिश चर रूप filehandle फ़ाइल नाम शामिल हैं। (ध्यान दें कि शाब्दिक चर - उन के साथ घोषणा की, "मेरे" - इस उद्देश्य के लिए काम नहीं करेगा; इसलिए यदि आप उपयोग कर रहे हैं "मेरा", अपने कॉल खोलने के लिए में EXPR निर्दिष्ट करें।)
ध्यान दें कि फ़ाइल नाम निर्दिष्ट करने के लिए यह एक बहुत अच्छा तरीका नहीं है। जैसा कि आप देख सकते हैं, इसमें वैरिएबल प्रकार पर एक कठोर बाधा है, और या तो ग्लोबल वैरिएबल की आवश्यकता है या इसे खोलने वाले वैश्विक फाइलहेडल को आमतौर पर सबसे अच्छा टाला जाता है।
एक शाब्दिक filehandle का उपयोग करते हुए नियंत्रण में इसकी गुंजाइश रहती है, और स्वचालित रूप से बंद करने के हैंडल:
open my $fh, '<', "filename" or die "string involving $!";
और अगर आप कमांड लाइन से कि फ़ाइल का नाम ले रहे हैं, तो आप संभवतः कि open
या किसी के साथ भाग कर सकता है पूरी तरह से संभाल लें, और कमांड लाइन तर्क या एसटीडीआईएन से पढ़ने के लिए सादे <>
ऑपरेटर का उपयोग करें। (इस बारे में अधिक के लिए टिप्पणियों को देखने के) केवल पैकेज पर
स्रोत
2011-02-08 13:44:18
perl की यह शैली ** रास्ता है ** अप्रचलित आप मेरी $ फ़ाइल खोलने से बहुत बेहतर होंगे, "<", $ ARGV [0] ... या बेहतर अभी तक खुला नहीं है और केवल एआरजीवी से पढ़ा है।(पर्ल मानते हैं कि इनपुट इनपुट के लिए फाइलें खोली जाएंगी, और उन्हें आपके लिए स्वचालित रूप से खुलती हैं।) –
यूनरी ओपन केवल पैकेज चर पर काम करने के लिए प्रलेखित है। – tchrist
@ विलियम: क्या वहां कोई एन्कोडिंग नहीं होगी? 'खुला (एफएच, "<: एन्कोडिंग (यूटीएफ -8)", $ पथनाम) ' – tchrist