in reply to Splitting large array for threads.
The latest version of threads distributed with Perl v5.20 states:
The "interpreter-based threads" provided by Perl are not the fast,
lightweight system for multitasking that one might expect or hope for.
Threads are implemented in a way that make them easy to misuse. Few people
know how to use them correctly or will be able to provide help.
The use of interpreter-based threads in perl is officially discouraged.
I believe this is the relevant discussion on P5P.
You may want to look into doing this with multiple processes instead. A central manager process could take responsibility of handing out reasonably-sized chunks out to the workers. See for example fork or Parallel::ForkManager, as well as perlipc.