【发布时间】:2020-12-11 19:50:45
【问题描述】:
我有以下 perl 多维散列,它作为散列引用从 Dancer 传递到 Template Toolkit。我无法弄清楚如何在 Template Toolkit 中显示它。
$VAR1 = {
'TylerMontgomery(2022)' => {
'so' => 1,
'bb' => 1,
'rbis' => 0,
'atbats' => 7,
'runs' => 2,
'hits' => 2
},
'ChaseLangan(2022)' => {
'runs' => 4,
'hits' => 4,
'atbats' => 5,
'bb' => 0,
'rbis' => 2,
'so' => 1
},
'BryceJones(2021)' => {
'hits' => 2,
'runs' => 2,
'atbats' => 4,
'bb' => 1,
'rbis' => 4,
'so' => 1
},
'WillGrimes(2021)' => {
'bb' => 0,
'rbis' => 0,
'so' => 1,
'runs' => 1,
'hits' => 2,
'atbats' => 3
},
};
我可以在我的 perl 代码中使用以下内容对哈希进行交互:
foreach my $name (sort keys %season) {
printf "%-27.27s", "$name: ";
foreach my $stat (sort keys %{ $season{$name} }) {
printf "%-12.12s", "$stat: $season{$name}{$stat} ";
## cal. avg
$season{$name}{AVG} = $season{$name}{hits} / $season{$name}{atbats};
}
printf "%4s %.3f\n", "avg:", $season{$name}{AVG};
}
到目前为止,我为显示它所做的尝试似乎有些不合时宜。任何帮助将不胜感激。
<table style="width:100%; line-height:40px;">
<% FOREACH Season = Season %>
<tr>
<td width="5">Season.key <% Season.key %></td>
<td width="5">Season.val <% Season.value %></td>
<td width="5">Season.val.atbats <% Season.value.atbats %>
<td width="5">Season.val.hits <% Season.value.hits %>
</tr>
<% END %>
</table>
最终在网页上显示的内容:
HASH(0xabd1ef4)HASH(0xabd1ef4)
Season.key Season.val Season.val.atbats Season.val.hits
【问题讨论】:
-
您的问题没有说明您使用的模板“系统”。请阅读How to create a Minimal, Reproducible Example。
-
注意:你的哈希有玩家数量,但模板指的是seasons——看起来不匹配。
-
对不起,我不明白你所说的“模板系统”是什么意思。我正在使用 perl->Dancer2->模板工具包。如果您认为我应该包含更多内容,很高兴编辑问题。
-
看看你的问题,你有没有提到Dancer?如果没有提及,我们怎么知道您使用的是什么。编辑您的问题并输入您使用 Dancer 模板的前两句话。
-
与Dancer或Dancer2无关
标签: html perl template-toolkit