スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Template::Toolkit を使ったPerlプログラムの例

Perl における定番のテンプレートエンジン (=雛形にデータを埋め込んで出力するためのツール) である Template Toolkit モジュールを使用したサンプルプログラム。

プログラム例 (1)

変数部分を置換するだけの、最もシンプルな使い方。

テンプレート

[%# template_html.tt -%]
<html>
<head>
<title>Online Shop Links</title>
</head>
<body>
<ul>[% links %]</ul>
</body>
</html>

Perl スクリプト

use strict;
use warnings;

use Template;

my @items = (
  {
    'name' => 'Amazon.co.jp', 
    'url' => 'http://www.amazon.co.jp/',
  }, 
  {
    'name' => '楽天市場', 
    'url' => 'http://www.rakuten.com/',
  }, 
);
my $template_item = 
  "<li><a href=\"[% url %]\">[% name %]</a></li>\n";

my $tt = Template->new();
my $content = "\n";
foreach my $refItem (@items) {
  # テンプレートを適用して $content に追記
  $tt->process( \$template_item, $refItem, \$content ) 
    or die $tt->error();
}

my $refLinks = { 'links' => $content };
my $filename = 'test.html';

# テンプレートを適用してファイルに出力
$tt->process( 'template_html.tt', $refLinks, $filename, 
  { binmode => 1 } ) or die $tt->error();

出力結果

test.html というファイル名で出力。

<html>
<head>
<title>Online Shop Links</title>
</head>
<body>
<ul>
<li><a href="http://www.amazon.co.jp/">Amazon.co.jp</a></li>
<li><a href="http://www.rakuten.com/">楽天市場</a></li>
</ul>
</body>
</html>

プログラム例 (2)

テンプレート側で制御構文を使用した例。

テンプレート

[%# template_html.tt -%]
<html>
<head>
<title>Online Shop Links</title>
</head>
<body>
<ul>
[% FOREACH item IN items -%]
<li><a href="[% item.url %]">[% item.name %]</a></li>
[% END # FOREACH -%]
</ul>
</body>
</html>

Perl スクリプト

use strict;
use warnings;

use Template;

my $tt = Template->new();
my @items = (
    {
      'name' => 'Amazon.co.jp', 
      'url' => 'http://www.amazon.co.jp/',
    }, 
    {
      'name' => '楽天市場', 
      'url' => 'http://www.rakuten.com/',
    }, 
);
my $filename = 'test.html';

# テンプレートを適用してファイルに出力
$tt->process( 'template_html.tt', {'items' => \@items}, $filename, 
  { binmode => 1 } ) or die $tt->error();

出力結果はプログラム例 (1) と同じ。

参考 URL

CPAN - Template::Toolkit

【theme : プログラミング
【genre : コンピュータ

プロフィール

よしいず

Author:よしいず
MATHEMATICS.PDFというウェブサイトを運営しています。

管理の都合上、トラックバックとコメントはオフにしてあります。ブログ経験者なら分かっていただけると思いますが、スパム(アダルトやその他の宣伝)ばかりなのが現実です。

リンクは自由です。当サイトの記事に対する間違いの指摘・意見・感想などを述べた記事からのリンクは歓迎です。ただし、ブログ記事アップ直後はミスが多く、頻繁に修正します。場合によっては削除する可能性もあります。その際、何も断りもなく修正・削除しますがご了承ください。内容を参考にする場合には投稿後一週間ほど様子を見てからにしてください(笑)。

記事の間違いを指摘するときは、その具体的箇所、理由(仕様に反するなど)・根拠(参考にした文献など)、代替案(同じ結果を得るための正しいやり方)も教えてください。そうしないと、(指摘される側および第三者はその時点では無知の状態なので、)どこが間違いなのか分かりませんし、本当に間違っているのかどうかが判断・検証できません。実際、間違いだと指摘されたことが結局は正しかったというケースもありますので。

このブログのタイトル一覧

リンク
月別アーカイブ
カテゴリ
最新記事
検索フォーム
RSSリンクの表示
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。