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

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

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

Каков наилучший способ вывода данных в 'life-span'?

У меня естьпробовал ...

[% artist.life-span %]

^ Сбой из-за дефиса.

[% artist.'life-span' %]

^ Сбой из-за неправильного синтаксиса.

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

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

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

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

1 Ответ

29 голосов
/ 22 февраля 2010

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

...