18

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

[% 
   artist = {
     'life-span' => '1975 to 1987',
   }
%]

在“生命周期”中输出数据的最佳方式是什么?

我试过了...

[% artist.life-span %]

^由于连字符而失败。

[% artist.'life-span' %]

^这会失败,因为语法不正确。

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

^这可行,但在具有大量数据的大型应用程序中是不切实际的。

有没有更好的办法?

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

4

1 回答 1

31

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

于 2010-02-22T14:07:29.323 回答