Как я могу обрабатывать хеш-ключи, содержащие недопустимые символы идентификатора в Template Toolkit?

В Template Toolkit, если у меня есть следующая переменная, содержащая hashref:

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

Каков наилучший способ вывода данных в "продолжительность жизни"?

Я пробовал...

[% artist.life-span %]

^ Это не удается из-за дефиса.

[% artist.'life-span' %]

^ Это не удается, потому что синтаксис неверен.

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

^ Это работает, но непрактично в большом приложении с большим количеством данных.

Есть ли лучший способ?

Проект, над которым я работаю, - это веб-приложение на основе Catalyst, и данные поступают из нескольких различных внешних веб-сервисов, поэтому я не контролирую имя хэш-ключей. Я предполагаю, что я мог предварительно обработать данные в Perl, переименовав хэш-ключи проблемы, прежде чем передавать его в TT, но это кажется довольно дрянной работой.

Ответы

Ответ 1

Вы можете использовать item vmethod: [% artist.item('life-span') %].