¿Cómo puedo manejar claves hash que contienen caracteres de identificación ilegales en Template Toolkit?

En Template Toolkit, si tengo la siguiente variable que contiene un hashref:

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

¿Cuál es la mejor manera de generar los datos en 'vida útil'?

Yo he tratado...

[% artist.life-span %]

^ Esto falla debido al guión.

[% artist.'life-span' %]

^ Esto falla porque la sintaxis es incorrecta.

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

^ Esto funciona, pero no es práctico en una aplicación grande con muchos datos.

¿Hay una mejor manera?

El proyecto en el que estoy trabajando es una aplicación web basada en Catalyst y los datos provienen de varios servicios web externos diferentes, por lo que no controlo el nombre de las claves hash. Supongo que podría preprocesar los datos en Perl, renombrar las claves hash del problema antes de dárselas a TT, pero eso parece una solución bastante mala.

Respuestas a la pregunta(1)

Su respuesta a la pregunta