ok...
per effettuare operazioni su file molto lunghi non è opportuno usare il sistema:

open (FILE, "file.txt");
my @testo = <FILE>;
close (FILE);

...

foreach my $each (@testo) {
....
chiamo i thread ecc ecc
....
}

meglio:

open (FILE, "file.txt");
while (my $each = <FILE>) {
...
}
close (FILE);

che svolge le stesse oprazioni di prima, ma non carica l'intero file in RAM.