CGI::Application

超簡単サンプル。

package CGIsample; 
use base qw(CGI::Application);
use strict;

sub setup {
    my $self = shift;
    $self->start_mode('mode1');
    $self->run_modes(mode1 => 'showmain');
}

sub showmain{
    my $self = shift;
    my $q = $self->query();
    my $output = '';
    $output .= $q->start_html(-title => 'CGI::Application sample');
    $output .= "<p>main page</p>\n";
    $output .= $q->end_html();
    return $output;
}
1;
#!/usr/local/bin/perl
use CGIsample;

my $webapp = new CGIsample();
$webapp->run();

CGI::Applicationの基本機能としては、各モードと対応するViewモデルをディスパッチすることなのかな。確かに

if ($mode eq 'mode1'){
    showmain();
}

みたいな分岐を延々と書くことを考えればかなり楽かも。もうちょっと使ってみよう。