use File::Edit::Portable; my $rw = File::Edit::Portable->new; my $fh = $rw->read('file.txt'); ... $rw->write(contents => $fh); #### my @contents = $rw->read('file.txt'); for (@contents) { ... } $rw->write(contents => \@contents);