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.