Practice of Programming

プログラム とか Linuxとかの話題

C::P::Static::Simpleと、C::P::Charsets::Japanese

Catalyst 5.6901
Catalyst::Plugin::Static::Simple 0.14
Catalyst::Plugin::Charsets::Japanese 0.04

で、Static::Simple と Charsets::Japanese がうまくいきません。
Static::Simpleは、いつのバージョンからかは知りませんが、デフォルトで入ってる
プラグインの一つです。

Static::Simple は、スタティックファイルの場合、

my $body = $c->response->body();

ref $body は、IO::Fileオブジェクトになります。
IO::Fileオブジェクトに対して、Charsets::Japaneseが処理しようとするので、
なんか変になります。

下記のようにすれば、OK

--- Catalyst/Plugin/Charsets/Japanese.pm
+++ Catalyst/Plugin/Charsets/Japanese_mine.pm
@@ -12,7 +12,7 @@
 
 sub finalize {
     my $c = shift;
-    unless ( $c->response->body ) {
+    if ( not $c->response->body or ref $c->response->body ) {
         return $c->NEXT::finalize;
     }

一応、報告済み(送ったパッチはちょっと違うが)。