sub perform { # do per line processing to avoid out-of-memory error. open( FILE, "< ./file.txt" ) or die "Can't open : $!"; while (my $line = ) { processLine(chomp($line)); } close FILE; } sub processLine { my $line=shift; # etc.