use warnings;
use strict;
use File::Edit::Portable;
my $rw = File::Edit::Portable->new;
my $recsep;
$recsep = $rw->recsep('unix.txt');
print "unix file before write: $recsep\n";
$recsep = $rw->recsep('win.txt');
print "win file before write: $recsep\n";
my $ufh = $rw->read(file => 'unix.txt');
my @unix_contents = <$ufh>;
close $ufh;
$rw->write(contents => \@unix_contents);
$recsep = $rw->recsep('unix.txt');
print "unix file after rewrite: $recsep\n";
my $wfh = $rw->read(file => 'win.txt');
my @win_contents = <$wfh>;
close $wfh;
$rw->write(contents => \@win_contents);
$recsep = $rw->recsep('win.txt');
print "win file after rewrite: $recsep\n";
####
# unix
$ ./find.pl
unix file before write: \0a
win file before write: \0d\0a
unix file after rewrite: \0a
win file after rewrite: \0d\0a
# windows
E:\test>perl find.pl
unix file before write: \0a
win file before write: \0d\0a
unix file after rewrite: \0a
win file after rewrite: \0d\0a
####
use File::Edit::Portable qw(pread pwrite);
my $fh = pread('file.txt');
# or even
my @contents = pread('file.txt');
# then, later
pwrite('file.txt', \@contents);