Wie kann ich mit Hash-Schlüsseln umgehen, die unzulässige Bezeichnerzeichen im Template Toolkit enthalten?

Wenn ich im Template Toolkit die folgende Variable habe, die eine Hashref enthält:

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

Was ist der beste Weg, um die Daten in "Lebensdauer" auszugeben?

Ich habe versucht...

[% artist.life-span %]

^ Dies schlägt aufgrund des Bindestrichs fehl.

[% artist.'life-span' %]

^ Dies schlägt fehl, weil die Syntax falsch ist.

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

^ Das funktioniert, ist aber in einer großen App mit vielen Daten unpraktisch.

Gibt es einen besseren Weg?

Bei dem Projekt, an dem ich arbeite, handelt es sich um eine Catalyst-basierte Web-App. Die Daten stammen von verschiedenen externen Web-Services, sodass ich den Namen der Hash-Schlüssel nicht kontrolliere. Ich schätze, ich könnte die Daten in Perl vorverarbeiten und die Problem-Hash-Schlüssel umbenennen, bevor ich sie an TT weitergebe, aber das scheint ein ziemlich beschissener Workaround zu sein.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage