gpt4 book ai didi

perl - 空数组引用上的模板工具包IF返回true,我可以将其设置为false吗?

转载 作者:行者123 更新时间:2023-12-04 04:47:27 29 4
gpt4 key购买 nike

因此,似乎如果我给模板工具箱一个对数组的引用作为参数

ARRAY_REF => \@array

然后在模板中包含以下代码
[% IF ( ARRAY_REF ) %]
Do something
[% ELSE %]
Do something else
[% END %]

else情况永远不会触发。

将参数代码替换为
ARRAY_REF => @array ? \@array : undef;

似乎解决了这个问题,但是我想知道是否有一种方法可以使模板工具包将空数组(通过引用传递)评估为false,因为在我的项目中有很多实例都认为该实例正在使用(例如在HTML模板中)亲它按预期工作)。

预先感谢大家的帮助。

最佳答案

您的ARRAY_REF将为true,因为它已定义,并且在Perl中为true值。通常的方法是检查它是真实的还是非空的:

[% IF ARRAY_REF && ARRAY_REF.size %]
Do something
[% ELSE %]
Do something else
[% END %]

说出您的真实意思,要求计算机假装比它更智能,这会带来奇怪的惊喜。

您可能会使用 change TT's notion of truthiness,但我不认为您会喜欢它,否则可能会遇到各种不愉快的副作用。模板工具包不是HTML模板专业版,在罗马时就像罗马人一样。

最好的选择是修复模板,并将额外的工作视为只是移植过程的一部分。不过,您可能可以构建一个插件来为您执行“真实且非空”的操作。

关于perl - 空数组引用上的模板工具包IF返回true,我可以将其设置为false吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4882365/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com