Because of multiple systems (with different OSs) sharing files on a file-server, I find my code running into "text files" with different line endings from the system-default for the system they are running on. I can't predict the line endings in advance (can't deduce it reliably from filename, extension, directory, or whatever).

The files are all small by today's standards, thousands of characters not billions, and in these applications I'm not worried they'll ever challenge memory size (so the idea below, which slurps the whole file first, doesn't look risky for this particular application).

Since $/ is a simple string (not a REGEXP), I can't just put a suitable REGEXP there and get the file split into lines on any standard terminator. (I've got DOS, FreeBSD and Unix, and possibly MAC interpretations of text files to cope with.)

Is there a consensus best-practice for this?

I'm currently thinking of slurping the whole file and then breaking it down in my code. If there isn't already a module that handles this cleanly?


In reply to Dealing with files with differing line endings by dd-b

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.