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


in reply to Re^2: String related question
in thread String related question

For tasks like you've described, there's no reason to read the entire file into an array. It's usually better to process the file line by line, because it scales in case your files should get huge. I.e. for, say, a 1 GB file, you'd need several gigs of RAM to hold the contents in the array, while if you process line by line, you'll only ever need storage for one line.

open my $fh_in, "<", $proteinfilename or die "Couldn't open '$protein +filename': $!"; open my $fh_out, ">", $outfilename or die "Couldn't open '$outfilename +': $!"; while (my $line = <$fh_in>) { if ($line =~ /^AD/) { print $fh_out " $line"; } }