chomp only bites off the last character of the string

That is not strictly true. Clearly on Windows, a chomp will remove both the CR and the LF - that's 2 characters! On Windows the IO layer is expecting CRLF terminated lines and it just automatically assumes that when opening a file in text mode. On Unix, trizen's suggestion of: open FILE, '<:crlf', 'index.html' looks like it would also work. Having said that, I don't see anything wrong with using a regex to remove whitespace from the end of the line - this approach will work fine.

Maybe this is too "nit-picky", but this "one character" idea is not correct. In Perl "\n" is magical in that sometimes it also means CRLF instead of just the single character LF. Also consider that CRLF line endings are also used all the time on Unix!! This is the standard for network communications. So if you open a socket and write to it on any OS, these lines will also be CRLF terminated! Most of the time this stuff is pretty much transparent to the Perl programmer. This thread shows a case where it is not.


In reply to Re^3: persistent new line by Marshall
in thread persistent new line by enkibian

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.