open my $input, "<", $ARGV[0] or die "couldn't open $ARGV[0]: $!"; open my $output, ">", "output.txt" or die "coudln't open output: $!"; while(<$input>) { if( m/something/ ) { # do stuff } s/stuff//g; # etc. print {$output} $_; } close $output; close $input;