PerlIO::eol - PerlIO layer for normalizing line endings
This document describes version 0.14 of PerlIO::eol, released December 18, 2006.
binmode STDIN, ":raw:eol(LF)"; binmode STDOUT, ":raw:eol(CRLF)"; open FH, "+<:raw:eol(LF-Native)", "file"; binmode STDOUT, ":raw:eol(CRLF?)"; # warns on mixed newlines binmode STDOUT, ":raw:eol(CRLF!)"; # dies on mixed newlines use PerlIO::eol qw( eol_is_mixed ); my $pos = eol_is_mixed( "mixed\nstring\r" );
This layer normalizes any of
Native into the designated line ending. It works for both input and output handles.
If you specify two different line endings joined by a
-, it will use the first one for reading and the second one for writing. For example, the
LF-CRLF encoding means that all input should be normalized to
LF, and all output should be normalized to
By default, data with mixed newlines are normalized silently. Append a
! to the line ending will raise a fatal exception when mixed newlines are spotted. Append a
? will raise a warning instead.
It is advised to pop any potential
:crlf or encoding layers before this layer; this is usually done using a
This module also optionally exports a
eol_is_mixed function; it takes a string and returns the position of the first inconsistent line ending found in that string, or
0 if the line endings are consistent.
NATIVE constants are also exported at request.
Audrey Tang <email@example.com>.
Janitorial help by Gaal Yahas <firstname.lastname@example.org>.
Inspired by PerlIO::nline by Ben Morrow, <PerlIOemail@example.com>.
Copyright 2004-2006 by Audrey Tang <firstname.lastname@example.org>.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.