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

1

19

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.

Shaftesbury answered 22/2, 2010 at 14:2 Comment(0)
V
32

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

Virg answered 22/2, 2010 at 14:7 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.