in reply to CGI::Application & mod_perl

Are you using mod_cgi or mod_registry? Or, is this an actual mod_perl handler? If you're using mod_cgi, you don't need to restart because mod_perl isn't actually doing anything. If you're using mod_registry (or whatever it's called), you have to restart the server every time you make a change (unless, of course, you're using some sort of reload-on-demand option).

Additionally, I would do something like:

sub setup { my $self = shift; $self->start_mode('start'); $self->run_modes([qw( start test )]); }

That's more CGIApp-ish. :-)

Being right, does not endow the right to be rude; politeness costs nothing.
Being unknowing, is not the same as being stupid.
Expressing a contrary opinion, whether to the individual or the group, is more often a sign of deeper thought than of cantankerous belligerence.
Do not mistake your goals as the only goals; your opinion as the only opinion; your confidence as correctness. Saying you know better is not the same as explaining you know better.