Template - Perlのコードを埋め込んだテンプレートを扱うモジュール
Perl のコードとテンプレートを分離するのに便利なモジュール。 テンプレートの適切な箇所に Perl のコードを埋め込むことで、 Perl からの変数を参照できる。
use Template;
# 典型的な使い方 $tmpl = Template->new($templatefile); $out = $tmpl->out(\%var, \%nvar);
# デコードのみ $out = Template->new($templatefile)->out(undef, undef, decodeonly => 1);
$tmpl = Template->new($file, %opt);
OPTION : decoded => BOOLEAN # true ならばデコードを行わない tmpdir => STRING # モジュール内部で使うテンポラリディレクトリ escapecode => CODE # nvar から var を生成するときに使うコード
Templateオブジェクトを返す。
$opt{escapecode} が省略された場合は、'&', '<', '>', '``' を '&', '<', '>', '"' に変換するフィルタが適用される。
print $tmpl->out($var, $nvar, %opt);
ARGS : var => HASHREF # $nvar, $var で参照できる値 nvar => HASHREF # $nvar のみで参照できる値
OPTION : decodeonly => BOOLEAN # デコードのみ
テンプレートを出力する。 var, nvar で指定された値は、テンプレート中の変数 $nvar で参照できる。 さらに、var で指定された値がエスケープされたものが、 テンプレート中の変数 $var で参照できる。
$tmpl->decode();
OPTION : file => STRING # ファイル名 forbid => HASHREF # 埋め込むと無限ループになるテンプレート # (内部処理用) import => BOOLEAN # true ならば インポートされたファイル
テンプレートファイルから Perl のコードを生成する。 テンプレートファイルを埋め込むときには、再帰的に呼び出される。
$out = $self->_replica_var($in, $filter);
ARGS : $in => REF # 変数 filter => CODEREF # フィルタ
RET : REF # $out の複製
変数の複製を作る。 変数が配列やハッシュへのリファレンスの場合は、 参照先を辿って複製を作る。 ただし、ARRAY, HASH, GLOB, SCALAR, REF へのリファレンス以外の リファレンスの場合は、 (完全な複製ではなく)リファレンスそのものを単にコピーする。
IO::File
Copyright (C) 2002 The Nagoya University Consumers' Co-operative Association
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the following URL for more details: http://www.gnu.org/licenses/gpl.txt
Written by Kenji Nakahira <nakahira@coop.nagoya-u.ac.jp>