perl - 我可以在模板中设置模板继承吗? (模板工具包)

标签 perl template-toolkit

我必须根据用户所处的状态显示不同的医疗表格。还有许多州共享的默认表格。这些医疗表格都是用模板工具包编写的,它们包含在更大的模板中。状态可用作标准化形式的变量。

我需要选择特定于状态的模板(如果存在),否则回退到默认值。我将如何最好地去做这件事?
INCLUDE_PATH已被用于控制站点样式之间的切换。

最佳答案

这样的事情应该可以完成这项工作:

主要.tt:

This is a main template [% GET state %]
[% SET iname = state _ ".tt" %]
[% TRY %]
[% INCLUDE "$iname" %]
[% CATCH %]
[% INCLUDE default.tt %]
[% END %]
End of main template

默认.tt:
This is default template

s1.tt:
This is template for state s1.

t.pl:
#! /usr/bin/perl
use 5.006;
use strict;
use warnings;

use Template;
my $tt = Template->new();
$tt->process("main.tt", { state => "s1" })
  || die $tt->error, "\n";
print "---------\n";
$tt->process("main.tt", { state => "unknown" })
  || die $tt->error, "\n";

运行时 t.pl :
This is a main template s1
This is template for state s1.
End of main template
---------
This is a main template unknown
This is default template
End of main template

关于perl - 我可以在模板中设置模板继承吗? (模板工具包),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3581639/

相关文章:

python - perl 单行捕获同一行中的多个匹配项

perl - 如果使用了 -e eval 开关,则强制 Perl 停止对命令行参数的特殊处理

perl - substr 在非常长的 UTF-8 字符串上的性能问题

perl - 如何处理 Template Toolkit 中的模板依赖项?

perl - 使用变量访问模板工具包中的哈希键

java - Perl 到 Java 的翻译

perl - 如何编写CGI脚本以通过ssh执行远程脚本并显示来自远程执行的数据?

mysql - DBIC 加入 Catalyst Web 应用程序

perl - Catalyst 中的调试屏幕更简洁?

perl - 空数组引用上的模板工具包IF返回true,我可以将其设置为false吗?