{ my ( $in, $out ); open $in, '<', $filepath or die $!; open $out, '>', $newpath or die $!; while (<$in>) { # process $_ which is the current line $_ = quux($_); print $out; # assumes $_ has everything to print now } close $out or die $!; close $in; }