PerlモジュールのHTML::Templateを利用していますが、多重ループの書き方がわかりません。
以下のようなループがある場合、どのようにperlを記述したらいいでしょうか。
<TMPL_LOOP NAME=LOOPA>
<TMPL_VAR NAME=title>
<TMPL_LOOP NAME=LOOP_GUEST>
<TMPL_VAR NAME=guest_name>
</TMPL_LOOP>
<TMPL_VAR NAME=time>
</TMPL_LOOP>
ドキュメントを見ると下記のように記述するようですが、下記を値それぞれではなく、配列を利用する場合にはどのように記述すれば良いでしょうか。
$template->param(LOOP => [
{ name => 'Bobby',
nicknames => [
{ name => 'the big bad wolf' },
{ name => 'He-Man' },
],
},
],
);
No.1ベストアンサー
- 回答日時:
中盤の意味を掴みかねましたが、とにかく上記のテンプレートへ出力出来る構造体を考えてみます。
$template->param(
LOOPA => [
{ # ここから
title =>"TITLE1",
LOOP_GUEST => [
{guest_name => "NAME1"},
{guest_name => "NAME2"}
],
time => "TIME1"
}, # ここまでがLOOPAの一つの要素
{ # ここからは二つ目
title =>"TITLE2", # LOOPA内のTMPL_VAR titleで取り出せるtitle
LOOP_GUEST => [ # ここからLOOPA内のLOOP_GUESTの要素
{guest_name => "NAME1"}, # LOOP_GUESTの要素の一つ
{guest_name => "NAME2"} # TMPL_VAR guest_nameで取り出せるguest_nameをセットしている
], # ここまでがLOOP_GUEST
time => "TIME2"
}
]
);
なんとなく、わかったでしょうか?
要するに、TMPL_LOOPの部分はハッシュリファレンスの配列のリファレンスがセットされている必要があって、ループ内で配列の中身が一つ一つ展開され、その中で利用出来るテンプレート変数がハッシュリファレンスの内容のハッシュになっている、と。多重ループであっても、同じことの繰り返しです。
参考までに、ドキュメントの構造体を出力するテンプレートは
<TMPL_LOOP NAME=LOOP>
<TMPL_VAR NAME=name>
<TMPL_LOOP NAME=nicknames>
<TMPL_VAR NAME=name>
</TMPL_LOOP>
</TMPL_LOOP>
とかになると思います。
まぁともかく、いろいろ実験して体得してみてください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- JavaScript gasについて 1 2022/05/31 21:51
- Visual Basic(VBA) ACCESS DAO で不要なテーブルのフィールド(列)の削除 4 2022/06/23 12:13
- Excel(エクセル) 複数のブックをひとつのブック(複数のシートにまとめる)場合にシートとの順番について 5 2022/12/28 20:47
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- JavaScript 以前の質問だと、どの条件でも配列が表示されてしまいます。 1 2022/07/09 11:40
- JavaScript セレクトボックスで配列を呼び出したい。 1 2022/07/08 20:14
- フリーソフト Googleスプレッドシートで特定の言葉が含まれる行の色分けをしたいのですが 4 2022/04/30 15:29
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テキストファイルで提出とは?
-
ターミナルで特定の文字と文字...
-
Perlでの文字列置換
-
#!/usr/bin/perlで書きだしたCG...
-
Perlのエラーについてご教授く...
-
perlのflock関数でロックをかけ...
-
ファイルアイコンの左下に緑の□...
-
perlプログラミング 空白行削除
-
perlのrequireの動き方について...
-
ペプシコーラとコカ・コーラとD...
-
perlについての質問
-
perl このテキストファイルを簡...
-
Perlでファイルの末尾から指定...
-
Perlで特定文字列から特定文字...
-
Perlのプログラムについて
-
CGIでimgタグでalignを使うとエ...
-
openした後、closeしないでプロ...
-
perl 初等プログラミングについて
-
Windows版のPerlについて
-
このファイルを開く方法で困っ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB6の公式リファレンスはありま...
-
C言語について。
-
CGFloatとは?
-
高速に文字列の比較
-
HTML::TemplateのTMPL_LOOPにつ...
-
$FORMの名前と変数の結合
-
画面を強制的に再描画させる方法
-
VBAでの一時停止と再開の方法
-
データベースでユーザーのパス...
-
VBのReturnの使い方
-
ループ7回目の悪役令嬢は、元敵...
-
UWSCの終了の仕方
-
Escキーを押すと、中断する時と...
-
エクセルの当番表を作っていま...
-
GIFアニメをループさせたくない
-
VBAで3秒だけ時間を止めたい
-
どなたかこのプログラミングを...
-
VBA for i=1 to lastrow
-
文字列を変数名として扱う方法
-
ハッシュ検索はなぜ速い
おすすめ情報