You didn't say what OS you are running on, and as perl's thread implementations vary that may be important.
perlthrtut has this to say which may be relevant to your problem :-
The main thing to bear in mind when comparing Perl's ithreads to o
threading models is the fact that for each new thread created, a c
copy of all the variables and data of the parent thread has to be
Thus, thread creation can be quite expensive, both in terms of mem
usage and time spent in creation.