mod_perl × Catalyst でPOST時Apache2::RequestRecを取得できない

Catalystを最新にしたら、詰まった点があったのでメモします。

mod_perlCatalystを動かしているのですが、今回Catalystを最新にしたらPOST時にエラーが出た。

Catalystのバージョンは5.90051(2013-11-07)です。

エラーの内容としては
POST or PUT 時に下のコードで Apach2::RequestRecではなく、FileHandleが返ってきて
Apacheのログをいじれないという内容である。
Caught exception in "Can't locate object method "user" via package "FileHandle" 

利用しているのこんなコード。
if ( $ENV{ MOD_PERL } ) { 
    my $r = $c->req->env->{'psgi.input'}; 
    $r->user( $c->user->uid ); 
} 
 
Catalyst.pmとか色々とCarp && Dumperして分からず、バージョンを下げたらエラーが出なくなっていた。

どうやら5.90049_004 DEVのアップデートが原因でした。

Changesを見てみると
たぶん下のやつが原因かなと思われる。
If incoming input (from a POST or PUT) is not buffered, create the
    buffer and set the correct psgi env keys to note this for downstream
    psgi apps / middleware.  This should solve some issues where Catalyst
    sucks up the body input but its not buffered so downstream apps can't
    read it (for example FCGI does not buffer).  We now also try to make
    sure the body content input is reset to the start of the filehandle
    so that we are polite to downstream middleware /apps.

書いてありました。
POST or PUT時はFileHandleにリセットされるそうです。

やったこと
Catalystのバージョンを下げる。

結論、脱mod_perlですね。頑張ります。