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

标签 perl catalyst 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 之前重命名有问题的哈希键,但这似乎是一个非常蹩脚的解决方法。

最佳答案

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

关于perl - 如何处理 Template Toolkit 中包含非法标识符字符的哈希键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2311303/

相关文章:

python - PYTHONPATH 与 PERL5LIB 的行为

regex - Perl:如何以结构化方式获取多个正则表达式捕获?

perl - Perl 面向对象设计模式

html - 我可以使用 Template Toolkit 确定变量是否为数组吗?

perl - 从 Text::Xslate 中的 Template::Toolkit 获取 WRAPPER 功能

perl - 模式匹配连续字符

perl - 如何使用 mod_perl 让 Apache 处理 .pl (Perl) 文件?

perl - 为高性能站点部署催化剂

perl - 如何消除 TT 的 "Wide character in print"警告?