CGIスクリプトからHTMLテンプレートを使うためのPerlモジュール。 詳細は以下を参照。
newメソッドでは、ちょっとした数のオプションを指定できます。 そのうち重要なものを(というより私が良く使うものを)挙げておきます。
my $template = HTML::Template->new(
filename => 'file.tmpl', # テンプレートファイルそのもの
'die_on_bad_params' => 0,
'loop_context_vars' => 1,
'global_vars' => 1
);
HTML::Templateでは、paramメソッドで渡されるパラメータと、テンプレート内で使用されているパラメータが完全に一致する必要があります。テンプレート内で使用しているパラメータが渡されていない、あるいは逆にテンプレート内で使用しないパラメータを指定する、といったことを行うとエラーになります。
このオプションを無効にすると、双方のパラメータが一致していなくてもエラーにはならないようになります。実装上、このオプションは便利です。ただし、特に必要がなければこれは有効にしたままの方が予期しない動作を回避できるでしょう。
loop_context_varsを有効にしておくと、ループ中で4つのループ・コンテキスト変数、__first__、__last__、__inner__、__odd__を使えるようになります。
これを使うと例えばレコードをtableで出力したいとき、__first__でtableの開始タグを、__last__ではtableの終了タグを出力し、__odd__(偶数行)では背景色を変えるといったことができるようになります。