« Load Balancer ManagerにアクセスするPerl Module | メイン | Deployツール »

CatalystでText::VimColorが動かない

FemoのText::Hatenaをアップデートしようと確認していたら、Text::VimColorがserver.plでうまく動かない。

試しに適当なアプリケーション作って、

sub test : Local {
    my ( $self, $c ) = @_;
    my $test = <<'EOF';
#!/usr/bin/perl
use strict;
use warnings;
print "Hello World\n";
EOF
    my $html = Text::VimColor->new(
        string   => $test,
        filetype => 'perl',
        html_full_page => 1,
    )->html;
    $c->res->body($html);
}


# ./script/myapp_server.pl -r

で起動して、ブラウザアクセスするとレスポンスが返ってこなくなる。
Terminalの方で、Ctrl+Cするとレスポンスが返ってくる。ただしコンテンツは空。
ちなみに、

# ./script/myapp_server.pl -r -f

としてforkすると動く。

selectかexecのあたりかが原因なんだろうけど、よくわからなかったので

package Text::VimColor;
use IPC::Run qw//;
sub _run {
   my ($self, $prog, @args) = @_;
   local $|=1;
   IPC::Run::run([$prog, @args], \my $in,\my $out,\my $err);
   return 1;
}

にした。

あと、これだと、FastCGIで動かないようだったので、とりあえずFemoの本番サーバをmod_perlに変更した。
あとで、もう少し深追いする。