[Perl][HTML::Template]<TMPL_LOOP>タグのサンプルプログラム

<TMPL_LOOP>タグはセクションを区切り、名前をつけることができます。この名前つきループの内側に<TMPL_VAR>タグを置き、プログラムでパラメータに代入するハッシュ・リファレンスの param() にリスト(配列リファレンス)を渡すと、リスト分の出力が繰り返されます。

以下は、<TMPL_LOOP>タグの使い方を示すサンプルプログラムです。サンプルプログラムでは、コンマで区切られたデータファイルを読み込んでリストを作成し、それをパラメータに渡してテーブルを表示しています。また、<TMPL_IF>タグ、<TMPL_ELSE>タグを使用してデータがない場合は、テーブルが出力されないようにしています。


--- データファイル(userdata.txt)

kagahiro,kitaakita,kagahiro3@59log.com,011678901
admin,tokyo,webmaster10@59log.com,011778901
buzei,kawasaki,support2@59bbs.org,041758901

--- テンプレートファイル(tmplloop.tmpl)

<html>
<head>
<title>HTML::Templateのサンプルプログラム LOOP</title>
</head>
<body>
<h1>HTML::Templateのサンプルプログラム LOOP</h1>
<TMPL_IF NAME=DATA_NUM>
    <table>
    <tr>
    <td>User Name</td>
    <td>Address</td>
    <td>Email</td>
    <td>Tel</td>
    </tr>
    <TMPL_LOOP NAME=USER_INFO>
    <tr>
    <td><TMPL_VAR NAME=USERNAME></td>
    <td><TMPL_VAR NAME=ADDRESS></td>
    <td><TMPL_VAR NAME=EMAIL></td>
    <td><TMPL_VAR NAME=TEL></td>
    </tr>
    </TMPL_LOOP>
    </table>
<TMPL_ELSE>
    No data
</TMPL_IF>
</body>
</html>

--- CGI(tmplloop.cgi)

#!/usr/bin/perl

use strict;
use warnings;

use HTML::Template;

my $template = HTML::Template->new(filename => 'tmplloop.tmpl');

my @loop_data = ();
open my $infh, '<', "userdata.txt";
while (my $rec = <$infh>) {
    chomp $rec;
    if ($rec ne '') {
        my %row_data;
        my ($username, $address, $email, $tel) = split(/,/, $rec);
        $row_data{USERNAME} = $username;
        $row_data{ADDRESS} = $address;
        $row_data{EMAIL} = $email;
        $row_data{TEL} = $tel;
        push @loop_data, \%row_data;
    }
}
close $infh;

$template->param(USER_INFO => \@loop_data);
$template->param(DATA_NUM => scalar(@loop_data));

print "Content-Type: text/html; charset=utf-8\n\n";
print $template->output;
[2231] Posted by kagahiro at 2010/08/18 20:59:26
オープン | 1 point | Link (1) | Trackback (0) | Comment (1)

キーワード
Perl HTML Template サンプルプログラム

語句検索のホームページ


[Perl][HTML::Template]<TMPL_LOOP>タグのサンプルプログラム 関連リンク

HTML::Template
HTML::Templateは、シンプルで高速なループ構造を表現するのに適したテンプレートエンジン。テンプレートファイルでは変数を入れるために以下のタグが使用できる。<TMPL_VAR> <TMPL_LOOP> <TMPL_INCL...

[Perl][HTML::Template]<TMPL_LOOP>タグのサンプルプログラム トラックバック

トラックバックURL :


[Perl][HTML::Template]<TMPL_LOOP>タグのサンプルプログラムへのコメント

1 Posted by モンクレールメンズ at 2012/11/10 19:09:28
お世話になります。とても良い記事ですね。

詳細の入力フィールドを表示する

おすすめ  (チェックしてコメントすると最新情報に掲載)
コメント :

< 前のスレッド      次のスレッド >

アクセスランキング

今日のアクセスランキング(上位10件)

  1. [大阪維新の会]大阪市交通局の市長選支援職員リスト捏造事件 (12 PV)
  2. 日本IT漫画新聞 (11 PV)
  3. NBA ジャージ (10 PV)
  4. スクエニ和田洋一社長、FF14の不評を認める (9 PV)
  5. ブレイドクロニクル RMT (9 PV)
  6. 鳩山辞任で民主党支持率急回復、ネトウヨ狼狽 (9 PV)
  7. ヨルダン政府、ヨルダン人パイロット殺害の報復としてリシャウィ死刑囚の死刑を執行 (8 PV)
  8. 藤原紀香、陣内智則夫妻が離婚 (8 PV)
  9. 財政の崖(フィスカル・クリフ) (8 PV)
  10. アナログマとは (8 PV)

今月のアクセスランキング(上位10件)

  1. 掲示板フリーソフト - 無料で利用できる掲示板CGI (27 PV)
  2. 掲示板やチャットなどのフリーPHPスクリプトの配布サイト (21 PV)
  3. WebRMT【ウェブRMT】-ラペルズ-RAPPELZ-RMT (14 PV)
  4. k本的に無料ソフト・フリーソフト (14 PV)
  5. 【速報】パナマ文書に記載されている日本企業、日本人の一覧リスト (14 PV)
  6. NBA ジャージ (13 PV)
  7. 紅茶に含まれる成分が骨粗しょう症に効果 体重60キロなら3日に一度60杯の紅茶を飲めば効果:お料理速報 (13 PV)
  8. [大阪維新の会]大阪市交通局の市長選支援職員リスト捏造事件 (13 PV)
  9. 日本IT漫画新聞 (13 PV)
  10. スクエニ和田洋一社長、FF14の不評を認める (12 PV)

アクセス統計

ディレクトリ

関連サイト