[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. 豪ケビン・ラッド首相は泥棒の血統を持つ「生粋のオーストラリア人」 (4 PV)
  2. 長澤まさみの巨乳が「ダイエット」で危機的状況に (3 PV)
  3. 2chみたいな掲示板「PHP 2chBBS」 (3 PV)
  4. ソニー製ブラウン管テレビに発火の恐れ (2 PV)
  5. [奇兵隊内閣]郵政改革法案廃案で亀井静香金融相が辞任 (2 PV)
  6. 【速報】パナマ文書に記載されている日本企業、日本人の一覧リスト (2 PV)
  7. 岡沢高宏の相棒でヤクザの金村剛弘(金剛弘)が西新宿の路上で襲撃され死亡 (2 PV)
  8. PHP、MySQLで動くオープンソース掲示板ソフト (2 PV)
  9. プリンセスガーデンホテル女性社長の「片岡都美」氏はフジモリ元大統領夫人 (1 PV)
  10. おかんとのメール (1 PV)

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

  1. 掲示板やチャットなどのフリーPHPスクリプトの配布サイト (143 PV)
  2. 【速報】パナマ文書に記載されている日本企業、日本人の一覧リスト (51 PV)
  3. [Twitter]ツイッター検索のまとめ (50 PV)
  4. プリンセスガーデンホテル女性社長の「片岡都美」氏はフジモリ元大統領夫人 (37 PV)
  5. 2NN (2ch News Navigator) (35 PV)
  6. 5ちゃんねる(5ch.net、旧2ちゃんねる)掲示板 (34 PV)
  7. 2ちゃんねる(2ch)検索 掲示板 - スレタイ、過去ログ、全文検索 (33 PV)
  8. 伝説の男、瓜田純士さんが新宿駅構内で2週間前に割腹自殺を図る (29 PV)
  9. PHP、MySQLで動くオープンソース掲示板ソフト (24 PV)
  10. ログ速(ろぐそく、logsoku) - 過去ログ スレタイ検索 全文検索 (22 PV)

アクセス統計

ディレクトリ

関連サイト