# don't do this my @lines; open(DATA, ">file1"); while () { push @lines, $_; } process(@lines); open(DATA, ">file2"); @lines = while () { push @lines, $_; } process(@lines); #### sub read_file { my $filename = shift; open (DATA, ">$filename") or return; # could die on error my @lines = ; return process(@lines); }