【发布时间】:2011-05-18 18:29:29
【问题描述】:
我在使用模板工具包时遇到了奇怪的行为,比如说我有一个数据结构(在 perl 中定义并作为参数传递):
( { FLAG => 1, some => data}, { some => data}, etc )
在模板中我有一个循环
[FOR ITEMS]
[IF (FLAG) ]
do something
[ELSE]
do something else
[END]
[END]
模板似乎永远不会进入else,我能让它进入else的唯一方法就是更改数据:
( { FLAG => 1, some => data}, { FLAG => 0, some => data}, etc )
因此它的评估结果为假。 但是,如果我将数据结构更改为
( { some => data}, { some => data}, etc )
它总是进入 else (因为它评估 undef 为假)。
似乎有一些变量“溢出”保留在下一次迭代的范围内,除非它们被覆盖,这是预期的行为吗?如果是的话,它是否记录在任何地方?
编辑: 后来我发现这是导致上述行为的另一个问题,这是由于我在模板的其他地方使用了“ELSEIF”而不是正确的“ELSIF”。 如果有疑问,请查看 jira 提出的解决方案,它解决了我在原始帖子中描述的问题。
【问题讨论】:
标签: html perl templates template-toolkit