use strict; use CGI; # or CGI::Simple my %dispatch = ( runmode1 => 'My::Package1', runmode2 => 'My::Package2', runmode3 => 'My::Package3', ); my $rm = $q->param('rm'); eval "require $dispatch{$rm}" or die "runmode handler not found"; $dispatch{$rm}->handler($q);