[Perl]



Template::Toolkitは強力なテンプレート処理システムでHTML::TemplateText::Templateなどといった他のテンプレート処理モジュールより汎用性の高い処理をすることが可能です。Template::Toolkitではテンプレートファイル内の変数置換だけでなく、テンプレートの中でTT2言語と呼ばれる言語で簡単なプログラムを書いたり、DBIなどのプラグインを使用してデータベースへの接続をすることも可能です。ただしプログラムとテンプレートを分けるメリットがなくなるので、極力プログラム本体はテンプレート外で処理することをお勧めします。


テンプレートファイル中の変数は[% %]内に記述します。


[% domainname %]


プログラム内からこのテンプレートファイルを読み込み変数を置換するには以下のようにします。


use Template;


my $tt = Template->new( { INCLUDE_PATH => '/var/www/html/template' } );
my $vars = { domainname => 'ksknet.net' };
$tt->process('template.txt', $vars ) || die $tt->error(), "\n";


$tt->processでは処理結果をSTDOUTに出力します。処理が成功すると1を返し、失敗するとundefを返します。そのため$tt->processの結果を変数に入れても1かundefしか返りません。結果を変数に入れるには以下のようにしてください。

my $result; $tt->process('template.txt', $vars, \$result ) || die $tt->error(), "\n"; print $result;


また出力をサブルーチンに渡したりファイルに出力することも可能です。


[補足]
ハッシュへのアクセスにはドット記法を用います。

[% customer.name %]


[参考資料]
Template::Manual




広告
初めてのPerl 初めてのPerl
¥ 3,780 / 売り上げランク: 4294 / 379 ページ

いわゆるリャマ本として知られる定番書

初めてのとあるが初心者向きではないと思う。
よくできてはいるが、、。

Code Reading―オープンソースから学ぶソフトウェア開発技法 Code Reading―オープンソースから学ぶソフトウェア開発技法
¥ 5,460 / 売り上げランク: 7047 / 523 ページ

CodeCompleteとCodeReadingを併せて読むとよいと、
組込み系のSESSAMEプロジェクトのメーリングリストと、
OS系のTOPPERSプロジェクトのメーリングリストで推薦を受けました。

CodeCompleteは読んだことがあったので、CodeReadingを読んでいます。

オープンソースを仕事にしているので、たいへん役立っています。

MISRA-Cは研修で取り上げてきたので、本書も研修の資料としても取り上げるように準備中です。

10日でおぼえる Perl/CGI 入門教室 第2版 (10日でおぼえるシリーズ) 10日でおぼえる Perl/CGI 入門教室 第2版 (10日でおぼえるシリーズ)
¥ 2,940 / 売り上げランク: 16395 / 472 ページ

CGIの入門書の中では、頭一つ抜け出た良書のように思います。
分厚いので、とても10日では読破出来ないと思いますが、
がんばって読めば、必ずそれなりの見返りを与えてくれる内容。
ただ、巻末の索引が貧弱なので読み返すには適しておらず、
付箋を挟んだりどこかに書きまとめたりする自分なりの工夫が必要。