use PS::Display; use PS::DataBase; use PS::Session; use PS::CGI; my %dispatch = ( action1 => \&do_me, action2 => \&do_you, ); my $action = PS::CGI::param('action_var') || $default; my $session = PS::Session->new_or_from_cookie(); my $user = PS::DataBase->user( $session->userid ); my ( $page, %extra_data ) = $dispatch{$action}->(); my %template_info = ( session => $session, user => $session->user, %extra_data ); print PS::CGI::header(-cookie => $session->cookie); SR::Template->process ( data => \%template_data, page => $page, );