while () { insert() if /something/; print TMP $_; } sub insert { print TMP, $insert } rename $tmp, $old or die "Can't rename $tmp to $old, Perl whines $!\n";