如何从Template-Toolkit中的数组中获取元素?

时间:2013-03-26 00:19:31

标签: perl catalyst template-toolkit

[% a = ['one', 'two', 'four'] %]
[% a.1 %] # it prints two. OK!

但是当我想要这个时:

[% a = ['one', 'two', 'four'] %]
[% n = 1 %]
[% a.n %] # it doesn't work

如何使用var n从数组中获取已定义的元素?

1 个答案:

答案 0 :(得分:9)

模板工具包对列表和哈希元素具有相同的访问权限 - 通过点运算符。在您的代码中,TT认为您希望通过键'n'获得散列a的值。 解决方案是在点运算符中的实际变量之前使用前缀$,在这种情况下:

[% a = ['one', 'two', 'four'] %]
[% n = 1 %]
[% a.$n %] # now it works