[twitter:@shmorimo]さんとのやりとりのなかで考えた、Xslateの関数にクロージャを渡したいケースのまとめです。 まず前提条件: リクエスト毎にクロージャをXslateに渡したい Xslateの登録関数を定義できるのはnew()のときのみ 動的に関数を加えることはできない リクエスト毎にXslateをnewすると遅いので避けたい このような条件下で、リクエスト毎にクロージャを登録する方法は幾つかあります。 render()のパラメータとして渡す KolonにせよTTerseにせよ、値に()演算子を適用すると関数を呼び出せます。したがって、単にrender()のパラメータにクロージャを渡すことで関数呼び出しができます。 #!perl -w use strict; use Text::Xslate; my $tx = Text::Xslate->new(); print $t