중첩 루프가 필요하지 않은 경우입니다.
<table>
<TMPL_LOOP dogs>
<tr><td> </td><td></td><td></td><td></td><td></td><td></td></tr>
<tr>
<td></td><td>Name</td>
<td></td><td>Start</td>
<td></td><td>End</td>
</tr>
<tr>
<td><TMPL_VAR ldogname></td><td><TMPL_VAR dogname></td>
<td><TMPL_VAR lstart></td><td><TMPL_VAR start></td>
<td><TMPL_VAR lend></td><td><TMPL_VAR end></td>
</tr>
<tr>
<td><TMPL_VAR lbreed></td><td><TMPL_VAR breed></td>
<td><TMPL_VAR lsex></td><td><TMPL_VAR sex></td>
<td><TMPL_VAR lcolor></td><td><TMPL_VAR color></td>
</tr>
<tr>
<td><TMPL_VAR leye></td><td><TMPL_VAR eye></td>
<td><TMPL_VAR lweight></td><td><TMPL_VAR weight></td>
<td><TMPL_VAR lattr></td><td><TMPL_VAR attr></td>
</tr>
</TMPL_LOOP>
</table>
및 코드 :
는 당신의 템플릿 파일을 변경
#!/usr/bin/perl
use warnings;
use strict;
use HTML::Template;
my $template=HTML::Template->new(filename=>'template.txt');
my @dogs=(#dogs data
{dogname=>'Dog',start=>'04-02-1996',end=>'06-19-2011',breed=>'Terrier',sex=>'Male',color=>'Brown',eye=>'Green',weight=>'10 Pounds',attr=>'bla bla'},
{dogname=>'Dog',start=>'03-04-1985',end=>'06-01-1988',breed=>'Retriever',sex=>'Female',color=>'Black',eye=>'Green',weight=>'50 Pounds',attr=>'bla bla'},
);
my %labels=(
ldogname=>'',
lstart=>'',
lend=>'',
lbreed=>'Breed: ',
lsex=>'Sex: ',
lcolor=>'Color: ',
leye=>'Eye Color: ',
lweight=>'Weight: ',
lattr=>'Attribute: '
);
for my $dog (@dogs) { #mix labels and values
while (my ($k,$v)=each %labels) {
$dog->{$k}=$v;
}
}
$template->param(dogs=>\@dogs);
print $template->output;
당신은 원하는 출력을해야합니다. http://www.perlmonks.org/?node_id=770278이 http://www.perlmonks.org/?node_id=193367 (구글이 더 많은 결과를 반환)
이 내가 원하는 것과 매우 가까이 : 귀하의 질문에 대답 할 수 있지만
것은, 당신은 중첩 루프의 몇 가지 예를 확인할 수 있습니다. 그래도 몇 가지. 내 예는 약간 벗어났습니다. 실제로 각 행에 제목 (name, start, end)이 있어야합니다. 그래서 1 행은 2 행을 향하고 있습니다. 또 다른 것은 각 범주 헤더 인 등이 ... 이 그래서 내가 당신의 예를 재현하려고
것 자체 세포, 즉 품종, 성별,에 있어야합니다! 새로운 요구 사항에 대한 답을 업데이트하고, HTML의 다른 변경 사항이 필요하면 그 후에 직접 알아낼 수 있습니다. – psxls
좋아, 업데이트 됨 – psxls