Perl - 模板工具包 - 如何获取模板中的变量列表?

Dou*_*uch 3 perl templates dancer

我正在使用Perl DancerTemplate::Toolkit.

我正在尝试创建一个通用例程,该例程将传递模板和HTTP GET/POST参数.

我需要找到一种方法来获取模板中的变量列表,因此我可以从参数中检索它们,或者如果缺少一个或多个,则返回错误.

我可以走一条丑陋的正则路线,但我希望有更好/更清洁的方式.

所有模板都是XML/SOAP,其中包含一些变量.

有任何想法吗?

Bor*_*din 9

如果TRACE_VARS在模板上下文中启用该选项,则可以使用该variables方法获取所有访问值的哈希值.

此代码显示了一个简短示例

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;
Run Code Online (Sandbox Code Playgroud)

产量

{ person => { email => {}, name => {} } }
Run Code Online (Sandbox Code Playgroud)