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に変更した。
あとで、もう少し深追いする。