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

标签 perl templates dancer

我正在使用 Perl 和 Dancer Template::Toolkit .
我正在尝试创建一个通用例程,它将传递一个模板和 HTTP GET/POST 参数。
我需要找到一种方法来获取模板中的变量列表,以便我可以从参数中检索它们,或者如果缺少一个或多个则返回错误。
我可以走一条丑陋的正则表达式路线,但我希望有一种更好/更清洁的方式。
所有的模板都是 XML/SOAP,这里和那里有一些变量。
有任何想法吗?

最佳答案

如果您启用 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;

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

关于Perl - 模板工具包 - 如何获取模板中的变量列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16088203/

相关文章:

c++ - RValue 引用、指针和复制构造函数

perl - 如何设置 Dancer2 中的日志格式?

perl - 引号和斜杠在多层中仍然存在

Perl 执行带有计数行的 pgrep

xml - 在perl中将元素添加到xml文件

go - 有没有一种方法可以计算Go模板?

javascript - Meteor template.find 未定义

nginx - nginx/starman/dancer Web堆栈的解释

mysql - 模板工具包显示唯一行

Perl 中 Ruby 的 irb 等价物?