今天我们看看CGI.pm的两种使用模式,因为今后我们要经常和它打交道了。调用CGI模块的模式有两种,一种是面相对象方式的,另一种是面向过程的。下面的例子说明这两种调用方式,首先是面向过程的:
!/usr/bin/perl -w
use strict;
use CGI;
{
print header(),
start_html(),
h1("你好");
print end_html();
}
然后是面向对象方式的:
!/usr/bin/perl -w
use strict;
use CGI;
{
my $cgi = new CGI;
print $cgi->header(),
$cgi->start_html(),
$cgi->h1("你好"),
$cgi->end_html();
}
这两段代码是随手写的没有经过测试,我们可以不去管这两种代码是如何实现的,仅仅知道有这么两种方式就可以了。另外,我建议使用面向对象的方式,因为面向对象方式的要比面向过程的方式效率高。
然后我们讲一讲CGI.pm中的函数调用方式。CGI模块经常使用下面的调用方式。
print $q->header(-type=>'image/gif',-expires=>'+3d');
header里面的参数实际上是一个hash类型,这里面每个参数前面都有一个“-”(其意义为hypher),可能看着有点不顺眼,但是看惯了就好了。由于这些带“-”的参数是一个hash,因此我们可以使用下面的调用方式:
print $q->header({-type=>'image/gif',-expires=>'+3d'});
#多了一个“{”
然后是看看header()函数。header函数生成的部分是我们在浏览器里面看不到的。但是也是不能没有的。这一部分是告诉浏览器应该对返回的信息进行什么处理,做什么事情的部分。下面是几个标准的header使用的例子:
$cgi->header("text/html"); #后面是一个标准的html文件,它是一种text文件。
$cgi->header("image/gif"); #后面是一幅gif图。
在接下来的学习中我们会通过几个实际的例子来加深和巩固以上的内容,今天就到这里吧。