[date:20100818]の検索結果


<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)

HTML::Templateの<TMPL_VAR>タグは、プログラムでパラメータに値を設定すると、タグの部分がパラメータで設定された文字列で置き換えられるという簡単なものです。

以下は、<TMPL_VAR>タグの使い方を示す単純なサンプルプログラムです。


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

<html>
<head>
<title>HTML::Templateのサンプルプログラム VAR</title>
</head>
<body>
<h1>HTML::Templateのサンプルプログラム VAR</h1>
<p>
My Name is <TMPL_VAR NAME=NAME> <br />
My IP Address is <TMPL_VAR NAME=IPADDR> <br />
</p>
</body>
</html>

--- CGI(tmplvar.cgi)

#!/usr/bin/perl

use strict;
use warnings;

use HTML::Template;

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

$template->param(NAME => 'Yamato, Taro');
$template->param(IPADDR => $ENV{'REMOTE_ADDR'});

print "Content-Type: text/html; charset=utf-8\n\n";
print $template->output;
[2230] Posted by kagahiro at 2010/08/18 20:57:05
0 point | Link (1) | Trackback (0) | Comment (0)

  1  


アクセスランキング

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

  1. 件名:とうちゃんのねがい (2 PV)
  2. ゲーム通貨-エルソード RMT (1 PV)
  3. [サッカー]韓国敗退に2ちゃんねらー歓喜 (1 PV)
  4. 元素周期表 (1 PV)
  5. 脱亜入欧 (1 PV)
  6. 皆既日食高額ツアーのトカラ列島悪石島、暴風雨で観測どころではなくなる (1 PV)
  7. 福田首相が辞任した本当の理由 (1 PV)
  8. ソウルアライブ-RMT-SOULALIVE-RMT (1 PV)
  9. バンキシャの「ラブプラス+」キモヲタ報道に捏造の疑い (1 PV)
  10. アイオンRMT (1 PV)

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

  1. 掲示板フリーソフト - 無料で利用できる掲示板CGI (28 PV)
  2. 掲示板やチャットなどのフリーPHPスクリプトの配布サイト (24 PV)
  3. 【速報】パナマ文書に記載されている日本企業、日本人の一覧リスト (19 PV)
  4. スクエニ和田洋一社長、FF14の不評を認める (15 PV)
  5. [Twitter]ツイッター検索のまとめ (15 PV)
  6. WebRMT【ウェブRMT】-ラペルズ-RAPPELZ-RMT (14 PV)
  7. k本的に無料ソフト・フリーソフト (14 PV)
  8. [大阪維新の会]大阪市交通局の市長選支援職員リスト捏造事件 (14 PV)
  9. 日本IT漫画新聞 (14 PV)
  10. NBA ジャージ (13 PV)

アクセス統計

ディレクトリ

関連サイト