読者です 読者をやめる 読者になる 読者になる

Template-Toolkit

perl

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でまねっこしたものを実装してみようかなーと思った。