【问题标题】:Perl Template Toolkit - how to return the template output result into a variable?Perl Template Toolkit - 如何将模板输出结果返回到变量中?
【发布时间】:2021-03-22 18:19:03
【问题描述】:

Perl Template Toolkit - 如何将模板输出结果返回到变量中,以便以后可以在控制器中对其进行处理或放入 html 布局中。

【问题讨论】:

    标签: perl template-toolkit


    【解决方案1】:

    答案是,结果输出的变量必须通过引用作为第三个参数传递

    $template->process(
            'dir/template.tt',
            {
                'par1'      => $par1,
                'par2'     => $par2,
            },
            \$output
        )   
    
    

    在文档中间接提到了它,但从非常冗长和技术性的描述中可能并不明显(我认为不清楚,几乎听起来像没有选项将它作为变量传递,除非它是一个回调实现打印变量,事实并非如此)

    该值可能是以下之一: 一个纯字符串,指示将打开的文件名(相对于 OUTPUT_PATH,如果已定义)和写入的输出;一个文件 GLOB 打开准备输出;对附加输出/错误的标量(例如文本字符串)的引用;对被调用的子程序的引用,将输出作为参数传递;或任何实现 print() 方法的对象引用,该方法将被调用,并将生成的输出作为参数传递。

    https://metacpan.org/pod/Template#process($template,-%5C%25vars,-$output,-%25options)

    即使在 google 中搜索它也不会很容易地提供特定的链接结果,并且在使用查询“perl template toolkit output template contents in variable process”多次尝试后才提供非常晚的结果

    【讨论】:

    • 我已经提交了一个拉取请求,它将(希望)使这些选项的文档更容易理解。 github.com/abw/Template2/pull/284
    • 啊,非常感谢,我没想到它会得到如此迅速的反馈,尤其是在人们如此专注于此事的情况下,或者我最初可能是“正确的”,直到我修改了问题,在您发表评论之前,我有一个暂时的想法,我也可以尝试解决该文档,但如果在我忙于其他事情的时候它不能那么简单,我就放弃了跨度>
    • 一年过去了,但我刚刚注意到includes my changes发布了一个新版本的TT。
    • 好信息,谢谢
    猜你喜欢
    • 2012-03-12
    • 2016-08-10
    • 2013-05-17
    • 2013-01-27
    • 2019-07-13
    • 2015-05-07
    • 2015-01-09
    • 1970-01-01
    • 2012-08-29
    相关资源
    最近更新 更多