Parallel::ForkManager makes it easy to manage a bunch of jobs in parallel. If you need more communication than you can get from exit codes, sharing through your MySQL database is a pretty simple way to do it. It has more overhead than local socket techniques, but is easier to get started with and less error-prone.