gpt4 book ai didi

perl - 如何在 Catalyst 应用程序的 Template Tookit 模板中定义常量?

转载 作者:行者123 更新时间:2023-12-02 09:01:19 25 4
gpt4 key购买 nike

我想在我的 TT 模板中使用常量。在 HTML::Mason (我以前选择的模板引擎)我可以这样做:

<%once>
use MyApp::Constants qw(CONSTANT);
</%once>

我如何在 Template Toolkit 中执行此操作? ?如标题中所述,这是一个 Catalyst app 所以我想我可以把常量放在 stash 里,但这看起来有点尴尬。

--编辑

抱歉 - 我应该提到我想使用我自己的常量 - 从 MyApp::Constants 导出,没有重复。

最佳答案

在您的 TT 配置中,您可以使用 VARIABLES传递值列表的选项,这些值将在处理时传递给每个模板。使用一些符号表技巧,您可以将所有常量吸出到配置中:

use MyApp::Constants;
use Template;


my $tt; # template object
{
no strict 'refs';
$tt = Template->new( {
VARIABLES => { map { $_ => &{ 'MyApp::Constants::' . $_ } }
grep { defined &{ 'MyApp::Constants::' . $_ } }
keys %MyApp::Constants::
}
}
)
}

这会查看包 MyApp::Constants 中的所有符号,检查它们是否被定义为子例程(这就是 constant.pm 在幕后所做的事情)然后使用 map 将它们的 hashref 提供给 TT。

关于perl - 如何在 Catalyst 应用程序的 Template Tookit 模板中定义常量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/960303/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com