とりあえず、sample的なものを作りはじめた。
ディレクトリ構成は今のところ、こんな感じ
/index.cgiindex.cgi
/MyApp -- /Dispatch.pm
/Welcome.pm
#!/usr/bin/env perlMyApp::Dispatch
use strict;
use MyApp::Dispatch;
MyApp::Dispatch->dispatch();
exit;
package MyApp::Dispatch;MyApp::Welcome
use strict;
use base 'CGI::Application::Dispatch';
sub dispatch_args {
return {
prefix => 'MyApp',
table => [
'' => { app => 'Welcome', rm => 'start' },
':app/:rm' => { },
],
};
}
1;
package MyApp::Welcome;"setup" Method が無いと動かない模様、、。まぁ、そのうち使うだろうから定義だけはしておくべし。。。
use base 'CGI::Application';
use strict;
use CGI::Application::Plugin::AutoRunmode;
sub cgiapp_init {
my $self = shift;
$self->header_props(-type => 'text/html; charset=SJIS');
}
sub setup {
}
sub start : StartRunmode {
my $self = shift;
my $q = $self->query();
my $output .= $q->start_html(-title => 'Welcome CGI::Application!!');
$output .= '<h1>Welcome CGI::Application!!</h1>';
$output .= $q->end_html();
return $output;
}
上記のように作成すると、URL とかが、
http://www.exsample.com/index.cgi/welcome/start
とかアクセスできる