package YourCGIAppModule; use strict; use warnings; use JSON; use base 'CGI::Application'; sub cgiapp_init { my $self = shift; $self->param( 'json' => JSON->new ); } sub setup { my $self = shift; $self->start_mode('main'); $self->run_modes( 'main' => 'screen_main_page', 'random' => 'ajax_get_random', ); } sub screen_main_menu { my $self = shift; my $tmpl_obj = $self->load_tmpl( 'default.tmpl', 'loop_context_vars' => 1, ); $tmpl_obj->param( 'title' => 'Main Menu' ); return $tmpl_obj->output; } sub ajax_verify_browser { my $self = shift; return $self->param('json')->objToJson({ 'random' => rand }); }