I have not looked through all of the code, but my thoughts at first glance were:
look at Parallel::ForkManager for handling the forking, as it allows you to limit the number of forks, and newer versions allow you to pass data back to the parent easily, and
as you appear to be looking initially at a CSV file, perhaps Text::CSV might make the field handling easier.
Hope that helps.
Comment on Re: Forking On Foreach Keys In Hash, Passing Hash To Sub, And Speed/Efficiency Recommendations