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

Sch*_*ern 5 perl template-toolkit

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

我需要选择特定于状态的模板(如果存在),否则回退到默认模板.我最好怎么做呢?

INCLUDE_PATH 已被用于控制网站样式之间的切换.

Grr*_*rrr 6

这样的事情应该做的工作:

main.tt:

This is a main template [% GET state %]
[% SET iname = state _ ".tt" %]
[% TRY %]
[% INCLUDE "$iname" %]
[% CATCH %]
[% INCLUDE default.tt %]
[% END %]
End of main template
Run Code Online (Sandbox Code Playgroud)

default.tt:

This is default template
Run Code Online (Sandbox Code Playgroud)

s1.tt:

This is template for state s1.
Run Code Online (Sandbox Code Playgroud)

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";
Run Code Online (Sandbox Code Playgroud)

运行时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
Run Code Online (Sandbox Code Playgroud)