You might take a look at
CGI::Application::Dispatch which does exactly what you are asking for.
I you are running under mod_perl, you can set CGI::Application::Dispatch to be your response handler and it will delegate to the appropriate classes with out any instance scripts.
If you are running under vanilla cgi (mod_cgi) you can use just one instance script using the dispatch() method to replace all of the other little scripts.
As you pointed out, you do lose the individual new() calls to each module, but you still have a setup() method in each module.