Perhaps I've misunderstood your question, but perhaps it might work if you created instances of the generic handler class, with the configuration file passed as an argument to the constructor. Then you'd only be use the generic class once, and creating a differently configured handler instance to do the work for each vhost. This reworking should be fairly painless if you're already using method handlers. So, for each host you might have something like the following in startup.pl:
# startup1.pl
use GenericModule;
$My::VirtualHost_1_Handler = GenericModule->new(
'config' => '/path/to/lib/Project1Config1/param.pm'
);
Then in your VirtualHost section:
PerlRequire '/path/to/startup1.pl'
SetHandler perl-script
PerlHandler $My::VirtualHost_1_Handler->handle
Then all you'd need to add would be some code to your generic class's new method that reads in the configuration variables and sets them as attributes of the specific instances. Each virtual host could then have one or more separate handler object instances, each with its own private configuration variables held as object attributes.
HTH
ViceRaid |