こっちはメソッド関係。(2013/07/21追記)newに指定できるencode系オプションについて追記。new()新しいテンプレートオブジェクトを作る。ファイルハンドルでも。'template.html',);オプションは、かなりいろいろあります。associate他のオブジェクトから、パラメータ値を継承する。CGI.pmのqueryオブジェクトを継承すると便利。実行済みであるかのように動く。$template->output;die_on_bad_param0を指定すると、テンプレートにない変数名でもparamを呼び出せる。デフォルトは1(呼び出せない)。strict0を指定すると、TMPL_*タグのように見えるがタグで無いものを、単に無視する。デフォルトは1(エラーになる)。utf8テンプレートをファイル名で渡す時、このオプションに1を指定すると、テンプレートファイルをutf8として読み込んでくれる。utf8;している時に使おう。(当たり前ですが)スカラーやオープン済みのファイルハンドルを渡す場合は、自分でencodingの面倒を見なければならない。utf8;したいのに、テンプレートファイルはutf8以外の文字コードで書かれているという時に。'<:encoding(euc)',);こちらも、テンプレートをファイル名渡しする時用。case_sensitivetrueを指定すると、テンプレートの変数名の大文字・小文字を区別する。デフォルトはfalse(区別しない)。行カウンター「__counter__」を使えるようになる。デフォルトはfalse(使えない)。この部分は、普通のループなので、毎回出力される。NAME="__counter__">」で出力できる。この部分は、ループの最初の回だけ出力される。この部分は、ループの奇数回だけ出力される。この部分は、ループの偶数回(奇数回のUNLESS)だけ出力される。この部分は、ループの最後の回だけ出力される。<TMPL_IF></TMPL_LOOP>ループが1回だけの場合、firstとlastは出力され、innerはスキップされる。max_includesテンプレートの差込が行える深さを指定。指定数を超えて差し込もうとするとエラーになる。0を指定すると、深さチェックを行わない。no_includes1を指定すると、テンプレートの差込を行わない(TMPL_INCLUDEを無効に)。デフォルトは0(差込を行う)。global_vars1を指定すると、ループの中でも、ループ外で指定した変数を使えるようにする。デフォルトは0(使えない)。]output()テンプレートの最終結果を返します。]param()テンプレートに差し込む値を設定します。個人的には、もっぱらnew時のassociateで値を入れているので、使用頻度低めです。変数=>値を格納したハッシュを指定$template->param(\%values);現在設定済みの値などを取得することもできます。こっちはほぼ使ったことない感じ...。]clear_params()テンプレートのすべての変数をundefに設定します。これも、あんまり使ったことないです...。]query()テンプレート構造の情報を取得。TMPL_UNLESSは、TMPL_LOOPで使われている名前なら「LOOP」を、そうでなければ「VAR」を返す。リストコンテキストでは、LOOPの内側のパラメータリストを返す。ループがネストしている場合も、再帰的にすべてのパラメータを参照できる。名前はすべて小文字で、タイプは大文字で返される。ORANGE-FACTORY(オレンジ工房)。