in reply to Poor performances with threads
I would instantiate the worker threads before reading the data. This would also give them the job to read the data, but can speed it up since creation is faster...
Consider: http://perldoc.perl.org/perlthrtut.html#Performance-considerations
Lukas