package MyCGIApp; use base 'CGI::Application'; use CGI::Application::Plugin::AutoRunmode; sub setup { ... load database ... ... load session ... ... other setup stuff... } sub runmode1 : Runmode { my $html_output = ''; $html_output .= $q->start_html(-title=>'petnuch.com', -style=>{-src=>'/css/layout.css'}); $html_output .= $self->banner; $html_output .= $self->menu; require 'MyCGIApp::Runmode1'; # do_runmode1 is defined in MyCGIApp::Runmode1 $html_output .= $self->do_runmode1; $html_ouput .= $self->footer; return $html_output; } /* Common functions to every web page */ sub banner { ... } sub menu { ... } sub footer { ... } 1;