PerlIO::eol - PerlIO layer for normalizing line endings
This document describes version 0.18 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 CR, LF, CRLF and Native into the designated line ending. It works for both input and output handles.
CR
LF
CRLF
Native
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 CRLF.
-
LF-CRLF
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 :raw prefix.
:crlf
:raw
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.
eol_is_mixed
0
The CR, LF, CRLF and NATIVE constants are also exported at request.
NATIVE
A carriage return constant.
A carriage return/line feed constant.
A line feed constant.
The native line ending.
Audrey Tang <autrijus@autrijus.org>.
Janitorial help by Gaal Yahas <gaal@forum2.org>.
Inspired by PerlIO::nline by Ben Morrow, <PerlIO-eol@morrow.me.uk>.
Copyright 2004-2006 by Audrey Tang <audreyt@audreyt.org>.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
See http://www.perl.com/perl/misc/Artistic.html
To install PerlIO::eol, copy and paste the appropriate command in to your terminal.
cpanm
cpanm PerlIO::eol
CPAN shell
perl -MCPAN -e shell install PerlIO::eol
For more information on module installation, please visit the detailed CPAN module installation guide.