per fare un confronto prova a non usare i thread, ma semplici processi, e vediamo che succede se il risultato è uguale allora il problema sta altrove. Poi sinceramente non so se la garbage collection (undef) sui thread funziona nella stessa maniera che sui processi.