/ / Perl - Template Toolkit - Comment obtenir la liste des variables dans le modèle? - perl, templates, danseur

Perl - Template Toolkit - Comment obtenir la liste des variables dans le modèle? - perl, templates, danseur

J'utilise Perl avec Dancer et Template::Toolkit.

J'essaie de créer une routine générique à laquelle seront transmis un modèle et les paramètres HTTP GET / POST.

Je dois trouver un moyen d'obtenir une liste des variables dans le modèle afin de pouvoir les récupérer à partir des paramètres ou de renvoyer une erreur s'il en manque une ou plusieurs.

Je peux faire une route de regex moche, mais j'espérais un meilleur moyen / plus propre.

Tous les modèles sont XML / SOAP avec quelques variables ici et là.

Des idées?

Réponses:

8 pour la réponse № 1

Si vous activez le TRACE_VARS option sur le contexte du modèle, alors vous pouvez utiliser le variables méthode pour obtenir un hachage de toutes les valeurs accédées.

Ce code montre un bref exemple

use strict;
use warnings;

use Template::Context;
use Data::Dump;

my $template = "[% person.name %] <[% person.email %]>";

my $context = Template::Context->new(TRACE_VARS => 1);
my $compiled = $context->template($template) or die $context->error;
my $variables = $compiled->variables;

dd $variables;

sortie

{ person => { email => {}, name => {} } }