sub setup { my $self = shift; # some sort of CGI::Application $self->run_modes( 'mode1' => 'some_sub_by_name', 'mode2' => \&some_other_sub_by_ref ); $self->authen->protected_runmodes('mode1'); }