http://www.perlmonks.org?node_id=103276


in reply to Re: Quick and portable way to determine line-ending string?
in thread Quick and portable way to determine line-ending string?

I mentioned doing what you suggest in my original post.

I had thought about IO::Scalar, but it no-op's binmode(). So you can't use that.

I believe the translation only happens on real physical disk files (I don't know about pipes, but there's no guarantee that a given platform will have pipes available).

I'd prefer to stay away from having to write to files, because many of A::Z's users are using it in web servers; writing to a file requires knowing where a temp file can be made, and might slow things down.

  • Comment on Re: Re: Quick and portable way to determine line-ending string?

Replies are listed 'Best First'.
Re: Re: Re: Quick and portable way to determine line-ending string?
by John M. Dlugosz (Monsignor) on Aug 09, 2001 at 03:11 UTC
    I'm pretty sure it will have effect any time the underlying system's file IO is used, whether it's a real file or whatever.

    As for slowing things down, does the line ending ever change? Figure it out once, and remember it. You could even make that part of installation.

    Here is another idea. You can have a known file containing the line ending candidate and just read it. See which one was transformed into a simple "\n".

    So, open (without binmode) lineend_mac and read it; ditto for lineend_pc and see which was a "\n". Neither really contained just a "\n".

    —John