Template-Toolkit

Class::DBIに引き続き、温故知新な感じです。Template-Toolkitを使ったことがないのはperlのレベルアップを目指す者としてまずかろうということで触ってみました。

Web+DB Pressのvol9のPerlStyleに出てくるコードを参考にしてます。

WEB+DB PRESS Vol.9

WEB+DB PRESS Vol.9

  • tt.pl
#!/usr/local/bin/perl
use strict;
use DBI;
use Template;

my $dbh = DBI->connect('dbi:mysql:world', 'mysql', undef,
                      +{ RaiseError => 1, AutoCommit => 0 });
my $sql = 'select Name from City';
my $cities_ref = $dbh->selectall_arrayref($sql, { Slice => {} });
$dbh->disconnect();

my $template = Template->new({ INCLUDE_PATH=>'/home/kotaro/template' });
$template->process('tt-sample.html', { cities => $cities_ref }) or die ;
  • tt.html
<html>
<body>
[% FOREACH c = cities %]
[% c.Name %]<br>
[% END %]
</body>
</html>
結果
<html>
<body>
Kabul<br>
Qandahar<br>
Herat<br>
...
Rafah<br>
NeverLand<br>
</body>
</html>


本筋からはそれるけどWeb+DB PressではAdoptorパターンをうまく使って、HTML::TemplateとTemplate-Toolkitを使い分けられるようになっていたので、TTとXslateでまねっこしたものを実装してみようかなーと思った。