科技讯息网 – 程序员的那点事!

首页 > 编程资料 > Perl语言 > 正文

怎么使用CGI模块?

浏览次数:次 2001年11月16日 作者:pike 字号:

怎么使用CGI模块??use?CGI;?

以上的语句就可以使用(打开)CGI模块,但是这样不能提高整套程序性能,这个使用的是整个CGI模块,也就是说包含了所有的方法,很多方法大家根本就不会用,也用不着,把200多KB的东西载入内存,而且有100多KB都是无用的,可以想象这样带来的弊端就是程序的整体性能下降,当然在运行一些小程序或者在本机调试的时候看不出来,但是在搞一些大型工程的时候就很容易现形。在使用CGI模块的时候可以增加参数单独导出指定的方法和标记(关于方法和标记导出的机制大家有空可以看看Exporter这个模块,这里再解释一下标记和方法的关系,用最简单的话来说就是标记是一组方法,比如我们可以把A和B两种方法组成标记C,我们导出标记C的时候就等于导出了方法A和B,标记前面都有一个冒号,标记C的完整表示方式是:C,如果我们要导出CGI模块中的标记C的话,我们可以使用语句:?

#==========[PERL]==========#?
use?CGI?qw/:C/;?

明白了?)。好了,说了这么多例子,我们返回现实中,CGI模块可以导出很多标记,其中最常见,也是最常用的是standard标记,理解了上面的概念当然用就会用:?

#==========[PERL]==========#?
use?CGI?qw/:standard/;?

my?$cgi?=?new?CGI;?

来导入CGI模块的标准方法(standard),第二行语句建立一个新的对象?$cgi,以后我们会用这个对象操作方法。既然我们已经会使用模块了,下面我们开始投入到应用中。?



二,如果输出头(HEADER)信息??

头信息非常重要,其中有一项叫content-type,这个表示内容的类型和编码方式,比如HTML页面的头是text/html,而WAP的头一般就是text/vnd.wap.wml,我们一般在把PERL程序输出到浏览器的时候都会增加头的信息,否则WEB服务器会返回500错误,以前打印头的方式:?

#==========[PERL]==========#?
print?"Content-Type:text/html\n\n";?

现在使用CGI模块后:?

#==========[PERL]==========#?
print?$cgi->;header("text/html;?charset=gb2312");?#?采用GB2312(简体中文)编码?
print?$cgi->;header("text/vnd.wap.wml");?#?输出WAP的WML格式?



三,如果获取表单参数??

大家晓得数据的来源一般是表单,以前要获取表单中的数据需要用read函数写一段解析参数和值的代码,使用了CGI模块后你就会觉得要从提交的表单获取值是多么的容易。下面我们介绍CGI模块中最常用的方法param,给这个方法一个表单中域的名称的参数,它返回给你该参数名的值,看下面的代码:?

#==========[HTML]==========#?
;?
;?
;?

假设我们表单中有一个叫YOUR_NAME的单行文本域,我们使用下面的PERL代码获取这个YOUR_NAME域的值:?

#==========[PERL]==========#?
my?$value?=?$cgi->;param('YOUR_NAME');?

如果我们在上面的YOUR_NAME域中填写值wac,那么这里的?$value?的值就等于wac。是不是非常容易?当然获取了值过后我们可以做一些操作,比如判断YOUR_NAME是否等于空,请使用下面的代码:?

#==========[PERL]==========#?
print?"你没有填写你的名字"?if?($value?eq?"");?