如何撤消模板工具包中的匿名列表?

aid*_*dan 6 perl template-toolkit

是否可以撤消模板工具包中的匿名列表?

例如

[% FOREACH month IN [1..12].reverse %]
    [% month %]
[% END %]
Run Code Online (Sandbox Code Playgroud)

(除了不起作用).

只是想知道是否有一种巧妙的方法可以不使用变量或显式输入数组.

Ada*_*ire 10

对不起,没有.能够在原地实例化匿名数组是由TT解析器处理的特殊情况.如果没有分配给命名变量的中间步骤,就不能像常规Perl一样对它们进行操作.

编辑:您甚至无法传递子程序尝试使用如下:

[% FOREACH month IN my_reverse([1..12]) %]
    [% month %]
[% END %]
Run Code Online (Sandbox Code Playgroud)

您也不能尝试在对象上使用方法:

[% FOREACH month IN testObj.my_reverse([1..12]) %]
    [% month %]
[% END %]
Run Code Online (Sandbox Code Playgroud)

他们将编译,但在每种情况下,FOREACH构造都会看到链的头部,例如CODE第一种情况下的引用和第二种情况下的祝福对象.