NAME

File::Edit::Portable - Read and write files while keeping the original line-endings intact, no matter the platform.

SYNOPSIS

use File::Edit::Portable;

my $rw = File::Edit::Portable->new;

my @contents = $rw->pread(file => 'file.txt');

push @contents, 'line 1', 'line 2';

$rw->pwrite(file => 'file.txt', contents => \@contents);

$hex_record_separator = $rw->recsep('file');

DESCRIPTION

This module will read in a file, and keep track of the file's current line endings, and write the file back out using those same original line endings.

Uses are for dynamically reading/writing files while on one Operating System, but you don't know that the record separator (line endings) are platform-standard.

You're returned an array with all of the lines of the file on read. You can them manipulate it, and then pass it back for re-writing the file (or a copy).

METHODS

new

Returns a new File::Edit::Portable object.

pread

Opens a file and extracts its contents, returning an array of the files contents where each line of the file is a separate element in the array.

Parameters: file => 'filename'

pwrite

Writes the data back to the original file, or alternately a copy of the file. Returns 1 on success.

Parameters:

file => 'file': Not needed if you've used pread() to open the file.

copy => 'file2': Set this if you want to write to an alternate file, rather than the original.

contents => \@contents: Mandatory, should contain a reference to the array that was returned by pread().

recsep('file')

Returns a string of the hex representation of the line endings (record separators) in 'file'. For example, "\0d\0a" will be returned for Windows line endings (CRLF).

AUTHOR

Steve Bertrand, <steveb at cpan.org>

BUGS

Please report any bugs or feature requests to bug-file-rw-portable at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=File-Edit-Portable. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

SUPPORT

You can find documentation for this module with the perldoc command.

perldoc File::Edit::Portable

You can also look for information at:

LICENSE AND COPYRIGHT

Copyright 2015 Steve Bertrand.

This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.

See http://dev.perl.org/licenses/ for more information.