HTTP::Engineで実装してみる
よくわかんないけどやってみよう→気がついたらCentOS5.1 on Mac miniにMac::Growl入れようと必死になってた><→二日間声出ししかしてなかったらperl忘れてる><→ビデオのエンコード大会に移行→エンコードが始まったらperlを書く流れ→perldoc HTTP::Engineに出てくるコードから動くところまできた。
#!/usr/bin/perl use strict; use warnings; use Data::Dumper; use HTTP::Engine;# middlewares => [ qw(Session MobileAttributes) ]; my $engine = HTTP::Engine->new( interface => { module => 'ServerSimple', args => { host => 'localhost', port => 1978, }, request_handler => 'main::handle_request',# or CODE ref }, ); $engine->run; sub handle_request { my $c = shift; $c->res->body( Dumper($c->req) ); }
入り口は突破した><→って思ったらMooseの勉強に突入。→Mooseの勉強はHTTP::Engineのコード読んでればいいのがわかった→Podのtypoをauthorsに口頭で伝えといた → middlewareがよくわからん><→HTTP-Engine-Middlewareをcodereposからとってくると動く。→らしいけどまだ動いてない→MobileAttributeとかいろいろ入れたら動いたー→何が問題なのか理解するのにえらい時間食ってしまったorz
sudo cpan HTTP::MobileAttribute sudo cpan Module::Reload sudo cpan String::TT sudo cpan HTTP::Server::Simple
→example/dumper.plが動くようになった→HTTPEx::Adaptor::ModPerlもみてみる→む? HTTP::Engine::Interface::ModPerlか。→fastcgiか。
2008-05-18 04:09:24: (mod_fastcgi.c.2592) FastCGI-stderr: Can't locate object me thod "prepare_write" via package "HTTP::Engine::ResponseWriter" at /home/danjou/ tmp/20080517/HTTP-Engine/lib//HTTP/Engine/Interface/FCGI.pm line 145.
↓
Index: lib/HTTP/Engine/Interface/FCGI.pm =================================================================== --- lib/HTTP/Engine/Interface/FCGI.pm (リビジョン 11849) +++ lib/HTTP/Engine/Interface/FCGI.pm (作業コピー) @@ -142,7 +142,7 @@ my($self, $buffer) = @_; unless ( $self->{_prepared_write} ) { - $self->prepare_write; + $self->_prepare_write; $self->{_prepared_write} = 1; }
→理解の速度が極端に遅いのでアレですが、動く環境が手に入った!→ビデオのエンコードもオワタ\(^o^)/