カラクリサイクル

『輝かしい青春』なんて失かった人の雑記

Perl Template Engineでのテンプレートのコンパイルの仕方

概要: Perlのテンプレートエンジンでのテンプレートのコンパイル方法をまとめて見る。


なんというかなんとなくまとめてみた。

やり方がわかったのは

  • Template Toolkit
  • Mojo::Template
  • Text::MicroMason

の三つ。

  • HTML::Template
  • HTML::Mason

はコンパイル方法が見つけられなかった。

なんというか、HTML::Templateはどうもなさそうで、 HTML::Masonは多分方法があるんだろうけど良く分からないって言う。

で、以下やり方。

Template Toolkit

use Template;
my $tt = Template->new;

my $compiled = $tt->context->template( $source );

Mojo::Template

use Mojo::Template;
my $mt = Mojo::Template->new;

$mt->parse( $source )->build->compile;

Text::MicroMason

use Text::MicroMason;
my $mm = Text::MicroMason->new;

my $compiled = $mm->compile( $type => $source );

まとめた感想。

Perlでテンプレートを扱うときって言うのは、アプリケーションの実行時にはテンプレートを変更せず、 変数だけをごにょごにょするってのが大半だろうから、テンプレートあらかじめコンパイルしておいて使い回せば、 ある程度の速度改善が望めるんじゃないかと思ってたりする。

まあ高速なテンプレートエンジンだとコンパイルして使いまわしてもそうは速度が変わらないだろうけど、 コンパイルに時間のかかるテンプレートエンジンだとそれなりに速度改善が見込めるんじゃないかな。

まあでもテンプレートエンジンによってはテンプレートをコンパイルする方法が無かったりするので、 使ってるテンプレートエンジンによるだろうけど。

で、コンパイルする方法を調べてて思ったんだけど、こういうのってWikiとかにまとめた方が良いよなぁと思ったり。 Blogに書くと後で見なくなったりしそうだし、書いたことを忘れちゃいそうでもあるし。

まあ何の参考になるかわからないけど、何かの参考になれば。