Perl 如何在模板工具箱中从数组中获取元素?

Perl 如何在模板工具箱中从数组中获取元素?,perl,catalyst,template-toolkit,Perl,Catalyst,Template Toolkit,但当我想要这个的时候: [% a = ['one', 'two', 'four'] %] [% a.1 %] # it prints two. OK! 如何使用var n从数组中获取已定义的元素?模板工具包通过点运算符对列表和哈希元素具有相同的访问权限。在您的代码中,TT认为您希望通过键“n”获取散列a中的值。 解决方案是在点运算符中的实际变量之前使用前缀$,在以下情况下: [% a = ['one', 'two', 'four'] %] [% n = 1 %] [% a.n %] # it

但当我想要这个的时候:

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

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

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

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

另一种方法是使用
[%a.item(n)%]
,当哈希中的键也是VMethod名称时,这是必需的
.keys
.sort
.index
都是经典的例子,可能会让你在这里绊倒。
[% a = ['one', 'two', 'four'] %]
[% n = 1 %]
[% a.$n %] # now it works