So I found the solution to this issue ... use PerPerl instead of pperl. I ran into issues using CGI with pperl, and then issues with pperl throwing server 500 errors when too many users hit the script. I fixed the 500 errors (by clearing CGI's global variables out every run of the script) however I couldn't find out how to launch more than 5 threads to circumvent the 500 errors.
Switching to PerPerl got around this with no configuration or options passed, it scales nicely.