CGI::Application::Plugin::AutoRunmodeを遊んでみる

http://search.cpan.org/~thilo/CGI-Application-Plugin-AutoRunmode-0.08/AutoRunmode.pmより

Catalyst風に書けるね。

以下ソース

neko.cgi


#!/usr/loca/bin/perl
use strict;
use warnings;
use Neko;
my $neko = Neko->new();
$neko->run();

Neko.pm


package Neko;
use strict;
use warnings;
use base 'CGI::Application';
use CGI::Application::Plugin::AutoRunmode;
sub setup {
my $self = shift;
$self->mode_param('__mode');
$self->header_add( -type => 'text/html; charset=Shift_JIS' );
}
sub cgiapp_init {
my $self = shift;
$self->tmpl_path('./template/');
}
sub index : StartRunmode {
my $self = shift;
my $t = $self->load_tmpl('index.html',die_on_bad_params => 0,);
return $t->output;
}
sub index2 : Runmode {
my $self = shift;
my $t = $self->load_tmpl('index2.html',die_on_bad_params => 0,);
return $t->output;
}
1;

こんな感じ。

StartRunmodeがデフォルトのRunmodeで
RunmodeがそれぞれのRunmodeになる。

慣れてないからなのかなんかしっくりこないなぁ。