あたらしものずきっ!

試してみたものとか、遊んでみたものを色々記してみます。

render_and_printのはまりどころ

Plack/PSGIベースではない MENTA ver0.15 で、Templateレンダリング部分にてちょっとはまってた。Plack/PSGI版では、そもそものコードが全然変わっちゃってるので問題なし。

対象のアーカイブは以下。

http://github.com/downloads/tokuhirom/menta/MENTA-0.15.tar.gz

render_and_printにて引数に文字列を渡すと、31行目の

my $out = $mtf->build_file($path)->(@params)->as_string;

の部分で文字列がオブジェクトと解釈されてしまうため、

Can't locate object method "_error" via package 〜

なエラーが発生する。

my $out = $mtf->render_file($path,@params)->as_string;

と、build_fileからrender_fileにメソッドを置き換えると正常に動作した。

さくらのスタンダードプランでやろうとしてる人の場合は、既存のCGIベースなver 0.15の存在が死活問題だと思うので、ここらへんの修正を先にやっとく必要がある。