http://www.perlmonks.org?node_id=959373


in reply to Removing lines ending with integers larger than x

The one liners above are fine, but if I needed to incorporate this into a larger script, I would write the filtered data to a new file, then replace the original with the new file.
use strict; use IO::File; #open the original report for reading my $file = IO::File->new("data.txt","r") or die($!); #Create a new file to write to my $filtered_file = IO::File->new("data_filtered.txt","w") or die($!); #read report file while ( my $line = <$file> ) { #remove newline chomp($line); my ( $data, $number ) = split ",", $line; $filtered_file->print("$line\n") if $number < 47; } $file->close; $filtered_file->close; # Replace the original file rename("data_filtered.txt","data.txt");