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

时间:2010-02-22 14:02:35

标签: perl catalyst template-toolkit

在Template Toolkit中,如果我有以下包含hashref的变量:

[% 
   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 个答案:

答案 0 :(得分:29)

您可以使用item vmethod:[% artist.item('life-span') %]