[英]Perl Template Toolkit: get root variable
有什么方法可以从提供给流程调用的模板中获取$ var-hash(而不是其子变量)
my $tt = Template->new({
VARIABLES => {
version => 3.14,
release => 'Sahara',
},
});
my $vars = {
serial_no => 271828,
i => 0
c => 1
};
$tt->process('myfile', $vars);
从模板的角度来看serial_no,i和c是全局变量,但我也希望通过其父哈希访问它。
背景是我们将xml传输到哈希树。 不同的(独立的)模板在该树的不同部分(不同级别)上工作。 子模板收集有关该树的某些部分的其他信息。 现在我想在模板中使用子模板,但是一些模板在树的一个节点上工作
例
A
+-Bs
+- b1
+- i
+- c
+- b2
+- i
+- c
+- b3
+- i
+- c
该树被转换为哈希值,并直接作为$ vars给出。模板TA工作整个哈希(模板看到变量Bs)模板TB在B节点上工作,仅获取该节点(模板看到i anc c)
我想编写一个带B节点并对其进行操作的块。 该块应可用于TA和TB,以便在不更改生成器脚本的情况下寻找获得完整环境的方法。
使用[%PERL%]块或使用Template :: Plugin :: Stash
经过测试
[% USE Stash %]
[% USE Dumper Indent = 1%]
<pre>[% Dumper.dump_html( Stash.stash() ) %]</pre>
未经测试
[% PERL %]
$stash->set( iamthestash => $stash ); ## or call your tree thing
[% END %]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.