Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I handle hash keys containing illegal identifier characters in Template Toolkit?

In Template Toolkit, if I have the following variable containing a hashref:

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

What is the best way to output the data in 'life-span'?

I have tried...

[% artist.life-span %]

^This fails because of the hyphen.

[% artist.'life-span' %]

^This fails because the syntax is incorrect.

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

^This works, but is impractical in a large app with lots of data.

Is there a better way?

The project I'm working on is a Catalyst based web app and the data comes from a number of different external web services, so I do not control the name of the hash keys. I guess I could pre-process the data in Perl, renaming the problem hash keys before giving it to TT, but that seems like a pretty crappy work-around.

like image 286
nick Avatar asked Feb 22 '10 14:02

nick


1 Answers

You can use the item vmethod: [% artist.item('life-span') %].

like image 64
Eugene Yarmash Avatar answered Oct 23 '22 05:10

Eugene Yarmash