[Perl Module] perl的HTML::Template模板技术
转载本站文章请注明,转载自:扶凯[http://www.php-oa.com]
本文链接: http://www.php-oa.com/2009/12/14/perl-html-template.html
近来要做web应用中,研究了一下perl的模板技术,从没有写过web.真是痛苦.在编程技术中模板(Template)技术是非常常用的一种技术,这样可以分离美工和程序员..也就是所谓的MVC.
模板原理其实很简单,先做好html的样本,然后用程序读进来,在插入变量.最后输出.这样就分开了html和程序本身.
在perl中就是用HTML::Template是个很常用的模块,用来实现模板技术.在HTML::Template不但可以插入变量,还可以放条件,判断和文件插入.
HTML::Template模块的基本标记
这个模块有一些自己的HTML的标记.如<tmp_var>,<tmpl_if>,</tmpl_if>,<tmpl_loop>等,
<TMPL_VAR NAME=”TEST”> # 单个变量
<TMPL_LOOP NAME=”TEST”> #循环
<TMPL_IF NAME=”TEST”> # 条件语句
<TMPL_ELSE> # 条件语句
<TMPL_UNLESS NAME=”TEST”> # 条件语句
<TMPL_INCLUDE NAME=”temp2.html”> # 插入
这些标记可有二种写法,<tmpl_var name=parameter>和<tmpl_var parameter>,这个看你的喜好了.
简单的例子
#!/usr/bin/perl
use strict;
use warnings;
use HTML::Template;
my $html = new HTML::Template ( filename=>"html.tmpl"); #new一个对象出来.其中需要指定一个html的文件
$html->param( TEST => 'hello!' ); # 给html标准替换成这个变量的值
print $html->output; #html的输出
html.tmpl文件的内容
TEST:
下面对变量的命令小小的介绍一下
我现在分开做三部分写,第一部分写perl中解析html的写法,另一部分写html中这个模块的标记是怎么样写的,以这样来分别介绍常用的一些标记用法
TMPL_VAR
普通变量的插入.记的给内容存成*.tmpl的文件.TMPL_VAR是做为Template Variable的意思.这样是为了和html分开.
#perl中的写法.
$html->param( name => [
{name => 'tom', age => '21'},
{name => 'fukai', age => '25'},
]);
#html中的内容
:
- tom:21
- fukai:25
注,上面可以在后面加入escape=html这样来做url的编码.如<TMPL_VAR TEST escape=html>.
TMPL_LOOP
循环这个是用在重复输出内容到一个地方.如表格
#perl中的写法.
$html->param( name => [
{name => 'tom', age => '21'},
{name => 'fukai', age => '25'},
]);
#html中的内容
:
- tom:21
- fukai:25
注,上面最开始的name是指参数的名字. TMPL_LOOP 和 /TMPL_LOOP 之间是重复的内容.
TMPL_IF, TMPL_ELSE, TMPL_UNLESS
条件语句,这些和perl基本的语法一样.这样会在不同的情况插入不同的内容.
#perl中的写法.
$html->param( test => 1);
#html
这个test=>1
#html输出
这个test=>1的
TMPL_INCLUDE
插入包含另一个html的文件.
这个主要是在一个html中插入另一个html
用法直接在html中写.自然会解析成别的一个html的内容到当前的网页中,这个perl中不用写什么
<TMPL_INCLUDE NAME="temp2.html">



















我一直用HTML::KTemplate 貌似功能比这个强大点。