2011-09-05 7 views
13

मैं खोलने के लिए में एक फ़ाइल पर्ल में मोड संलग्न की जरूरत है, लेकिन मैं जरूरत है कि खोलने फ़ाइल से पहले सभी डेटा हटा दिया जाता है और नए सिरे से डेटा में चला जाता हैपर्ल: संलग्न मोड में फ़ाइल और फ़ाइल खोलने के स्पष्ट सामग्री

मैं लाइन से डेटा लाइन में प्रवेश कर रहा हूं, इसलिए पहली पंक्ति दर्ज करने से पहले मुझे पिछले सभी डेटा को हटा दिया जाना चाहिए।

कृपया मदद करें।

उत्तर

16

मुझे लगता है कि तुम क्या "जोड़ना" पर्ल में मतलब है के बारे में उलझन में हैं। क्या आप का वर्णन कर रहे हैं यानी एक फ़ाइल खोलने और यह छोटा, .:

open my $fh, '>', $file; 

यह $file की सामग्री हटा दें और एक ही नाम के साथ एक नई फ़ाइल को खोलने जाएगा।

संलग्न करने के लिए खुला उपयोग करने का कारण तब होता है जब आपके पास ओवरराइट करने की इच्छा नहीं है। अर्थात। > और >> के बीच का अंतर यह है कि पूर्व मौजूदा फ़ाइल को मिटा देता है और फ़ाइल की शुरुआत में लिखना शुरू करता है, और बाद में मौजूदा फ़ाइल के अंत में छोड़ देता है और वहां लिखना शुरू कर देता है।

प्रलेखन here

6
+1

वास्तव में फ़ाइल को सही तरीके से खोलना अधिक आसान है। इसे एपेंड मोड में क्यों खोलें और फिर इसे 0 पर छोटा करें जब इसे लिखने के तरीके में पहली बार खोलना आसान हो? – Matteo

+3

मुझे नहीं पता, मैंने पागल सीमा नहीं बनाई है। इसके अलावा, आज मैं चेहरे के मूल्य पर सवालों के जवाब देने के मूड में महसूस कर रहा था। '12 'से खोलने पर – daxim

+1

खराब होता है जब हमें झुंड का उपयोग करके परमाणु संचालन करना चाहिए। क्यूं कर? क्योंकि हम बंद फ़ाइल के लिए झुंड नहीं कर सकते हैं। Truncate इसके लिए सबसे अच्छा है। हम फ़ाइल को '+ <' के रूप में खोलते हैं, झुंड, परीक्षण करते हैं और सामग्री को हटाने का निर्णय लेते हैं या नहीं। – Znik

2

फ़ाइल से निपटने में शामिल हैं:

  1. एक फ़ाइल पढ़ें (<) एक फ़ाइल में
  2. लिखें
    1. संलग्न (>>)
    2. ओवरराइट (>)

विस्तृत स्पष्टीकरण के लिए कृपया this लिंक पर जाएं।

संबंधित मुद्दे