您的位置:建站学院首页 >> 文章 >> CGI技术
在Perl/CGI中使用模板
在Perl/CGI中使用模板
作者: Dave Edis

<编者按:如果你不打算使你的网络应用系统出现混乱,那么就在Perl/CGI脚本中使用HTML模板吧,这样可避免大量冗余HTML代码的出现。>

大部分网络应用程序中用了很多HTML代码。象Hotmail这样的基于web的电子邮件系统,其中的登录屏幕、邮箱、发送信息、文件夹、菜单条、设置选项和其它栏目都使用了HTML代码。

网络程序是可以使用HTML的,但问题是HTML出现的地方太多,程序的每个需要显示的部分都需要设计HTML页面。这些HTML代码出现在哪里呢?就在你的Perl源码中。这就意味着在你的程序中,将会插入数千行的HTML代码,你的perl程序将会变得很难调试,在调试HTML的屏幕显示时,也是困难重重,要是此时再换个其他人来编辑HTML,就更是雪上加霜,不用提有多混乱了。解决这些问题的办法是:把HTML代码放到后缀为“.HTML”的文件中去,作为模板,然后,在所写的Perl/CGI 程序中,使用这些HTML模板文件。
为所有的那些HTML找一个新家
组织你的HTML模板的最好方法,就是让它们尽量靠近你的程序的存放目录。(要么同你的程序一起都放在同一目录中,要么把模板文件放在名为“/templates/”的子目录中。) 另外,在你给模板文件命名时,尽量取些描述性强的名字。我通常的命名方法是:下划线后面紧跟程序名,目的是用来区分常规的HTML文件和HTML模板。

例如,如果要创建基于Web的电子邮件程序“Web Mail”,我们的模板就这样命名:

_webmail_login.html     # 登录

_webmail_message_list.html      # 显示信件

_webmail_message_read.html      # 阅读信件

_webmail_message_send.html      # 创建/发送信件

_webmail_message_erase.html      # 删除信件

_webmail_message_erase_confirm.html      # 确认删除

_webmail_logoff.html     # 退出


一看文件名,我们就很容易知道该文件是做什么的。一段时间以后,回过头来再作修改时,也不会搞错。如果你是同其他网络开发者协同工作,也不用担心他们在修改时会把程序搞乱。
现在,我们开始着手把所有的HTML从Perl/CGI程序中移出去,放到HTML模板文件中,然后,还需要有个办法把它们显示出来。所以,我们将编制一个称为&Template的Perl子程序,程序代码如下:

sub Template {

local(*FILE);# filehandle

local($file);# file path

local($HTML);# HTML data



$file = $_[0] || die "Template : No template file specified\n";



open(FILE, "<$file") || die "Template : Couldn't open $file : $!\n";

while (<FILE>) { $HTML .= $_; }

close(FILE);



$HTML =~ s/\$(\w+)/${$1}/g;



return $HTML;

}


该程序中的大部分语句很简单,我们只是打开了一个模板文件,把其内容读出,并返回给程序。所用的技巧是使用了下面的正则表达式,它是用来搜索HTML模板中的Perl变量, (如:“$date”) 把变量的值取代其符号表示。

$HTML =~ s/\$(\w+)/${$1}/g;  

本内容共2页  首 页  上一页  下一页  尾 页  当前在第1

Google
 
Web www.cqxw.net