Open the input file. Open a temporary output file. Read the input file line by line. Process one line of input. Write it out to the output file. When done, append your additional information to the output file. Close the input file. Close the output file. Then rename your temp file so that it replaces your input file. Do your writing in standard ">" mode, because you're writing a new temp file, not appending to an existing file.

This is quite the long-winded approach. Why would you want to have to read and then write back out each line, even ones that are not being modified? Too much file input/output! Take a look at my solution. It simply scans the file once over and appends the data (if necessary) at the very end. Simple yet efficient.


In reply to Re^2: appending to a file by Anonymous Monk
in thread appending to a file by Anonymous Monk

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.