“ __LAST __”(在tmpl_if中)在Perl HTML :: Template中并不总是有效

时间:2018-11-21 13:22:41

标签: perl perl-html-template

我的tmpl文件中包含以下行:

<td><TMPL_LOOP SIGNS><TMPL_VAR LEFT_SIGN> - <TMPL_VAR RIGHT_SIGN><TMPL_UNLESS __LAST__></br></TMPL_UNLESS></TMPL_LOOP></td>

刷新页面时,它会在两个显示之间切换(有时刷新会导致相同的显示,而不必切换):

Display1(每行之间的新行-如预期):

AA1 - AA2
BB1 - BB2
CC1 - CC2 

Display2(最后一项之间没有新行):

AA1 - AA2
BB1 - BB2CC1 - CC2

最近我将Perl升级到了5.24.3版,我怀疑__LAST__不能按预期的方式工作(无法始终识别循环中的最后一项)。 我正在使用模块“ HTML :: Template”。

我将html更改为(__FIRST__而不是__LAST__):

<td><TMPL_LOOP SIGNS><TMPL_UNLESS __FIRST__></br></TMPL_UNLESS><TMPL_VAR LEFT_SIGN> - <TMPL_VAR RIGHT_SIGN></TMPL_LOOP></td>

它总是按预期工作。

我找不到与此问题有关的任何参考信息。

__LAST__真的是一个错误吗?

1 个答案:

答案 0 :(得分:0)

如果您使用的是HTML :: Template,请检查documentation。您可能需要设置loop_context_vars选项并使用小写的__last____first__。 我猜带有__FIRST__的代码行得通,因为它总是输出<br>