繁体   English   中英

Perl模板工具包:获取根变量

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM