如何在Template Toolkit中处理包含非法标识符字符的哈希键?

19
在Template Toolkit中,如果我有一个包含哈希引用的以下变量:
[% 
   artist = {
     'life-span' => '1975 to 1987',
   }
%]

什么是输出“life-span”数据的最佳方法?

我已经尝试过...

[% artist.life-span %]

^这个失败是由于连字符引起的。

[% artist.'life-span' %]

^这个失败是因为语法不正确。

[% lifespan = 'life-span' %]
[% artist.$lifespan %]

这样做是可行的,但在大型应用程序中处理大量数据时不太实用。

有更好的方法吗?

我正在开发一个基于 Catalyst 的 Web 应用程序,数据来自许多不同的外部 Web 服务,因此我无法控制哈希键的名称。我想我可以在 Perl 中预处理数据,在将其提供给 TT 之前重命名问题哈希键,但这似乎是一种相当糟糕的解决方法。

1个回答

32
你可以使用 item V 方法:[% artist.item('life-span') %]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接