I would get working your serial version of the code before you create a threaded version of what you wish to do.
in reply to Splitting large array for threads.
Once you do this, you can think about how it makes most sense to split the work amongst your threads.
If your input file is indeed an array, perhaps even of numbers, then I would consider looking at the various options and interfaces the Perl Data Language gives you.
You may also want to consider using a truly threaded Perl like language like Qore if you wish to do things in a more native way. I have a talk linked via perlfan for it as it relates to Perl programmers.