赞助广告 赞助广告
  当前位置:网络学院程序设计C/C++/VC → CGI/PERL的现在与未来
CGI/PERL的现在与未来
日期:2001年7月17日 作者:不详 人气: 查看:[大字体 中字体 小字体]
从1997年接触CGI以后,我就发现我渐渐的喜欢上了它,当时我国还是
HTML的时代,好的动态网站不多。其中由网易开发的163电子邮局,更让我
喜欢CGI。在当时CGI这个名词在中国的网络上出现的频率少之又少,ASP刚
刚浮出水面,更听不到PHP这个现在无人不晓的程序语言。就在今年,PHP好
像一夜间就侵袭整个地球。在中国的网站到处可以见到以点PHP结尾的URL,
PHP的贴子,PHP的文章和程序代码。而你几个月前,还看到某个网站在招聘
CGI/PERL程序员的时候,今天却换成了PHP。一时间我的大脑膨胀的不得了,
我不知道我是否应该放弃CGI/PERL,去学习PHP。我在论坛做了很久的
CGI/Perl版主,起初当时还没有听说PHP这个脚本语言,几个月后出现了
PHP版,它以迅雷不及掩耳之势迅速追赶一切的一切,几乎成了当时的焦点。
而批评、蔑视和诋毁CGI/Perl文章的也逐渐多了起来。写了3年的CGI/Perl
程序,今天突然被称为速度慢、耗费系统资源和语言复杂等种种原因好像变
成了程序中的垃圾。因此,我在此的犹豫不决,让我更多的了解了CGI、ASP、
API和PHP这四种WEB上最常见的语言。

  在CGI中,有众多语言,包括:C/++、Perl、TCL、Basic等。其中
由于Perl的易编译调试、移植性颇强。几乎成了CGI的标准,或代言词。每
每当人们提到CGI的时候,你必然会想到PERL。前些月人们还在CGI与 ASP
之间的争执,但实事证明了ASP并不是最好的网络语言,它的安全性令人担
忧,它的移植性更令人头疼。面对着抄得沸沸扬扬免费的Linux,你只能感
到无奈,只好掏出腰包给微软来换取新的Windows。PHP和ASP一样都是被称
为“可嵌入式”的程序脚本语言和强大的数据处理能力。并大大贬低了
CGI/PERL在此的用处。在一篇介绍PHP的文章中这样说:“用Perl/C等写的
CGI脚本是一种“非嵌入式”的服务器端脚本,因为它是一个单独的程序,
而不是嵌在HTML文档中再通过另一个程序解释替换。例如,下面的Perl程序:

print "Content-type:text/html\n\n";
print <<HeadofHTML;
<HTML>
<HEAD>
<TITLE>Hello!</TITLE>
</HEAD>
<BODY>
HeadofHTML
print "<CENTER>aaa</CENTER>";
print "</BODY></HTML>"; “

在这个脚本中,它的确是非嵌入式的,但是我们要了解到是,早在公
元1996年8月份,可嵌入是的CGI脚本程序已经开发成功,它就是ePerl
。因为它并不是CGI/Perl的主要功能,只有国外一些网站在使用,在国内
很少会知道。它PHP 一样有着可嵌入是的功能。一个普通Perl的例子:

print "foon";
print "barn";
print “HELLO WORLD”;
print "baz n";
print "quuxn";
采用ePerl 以后:
foo
bar
< ? print “HELLO WORLD”; !>
baz
quux
而PHP:
foo
bar
<? echo “HELLO WORLD”; !>
baz
quux

从上面三个里之中,我们可以看出,Perl和PHP一样都具有嵌入的功能,
当然你非要说echo比print少一个字母我也没有办法:)另一个是embPerl,
embPerl在和ePerl很多方面都很相像。它们的主要不同在于ePerl不是HTML
专用的,而embPerl是专门用于HTML的。EmbPerl提供了一些元命令来完成
特殊任务,像填充HTML表等等。用了特殊的方法解释一些HTML标记。但是学
习新的语法比较费劲,不过ePerl它和Perl没有什么区别,如果需要用于一般
目的的嵌入Perl方案,ePerl更佳。而EmbPerl在特殊的时候更为出色。在使
用eperl和EmbPerl前必须安装它们的模块。这里介绍ePerl在Unix类型系统中
的安装方法:

  首先到:www.engelschall.com/sw/eperl/下在相应的ePerl模块,
在eperl源目录下面依次输入:perl Makefile.pl、make、make test、make
install。在以SSI形式使用ePerl的时候,这些命令将安装在 Apache::
Perl模块。修改httpd.conf文件,

<Location /eperl/>
SetHandler perl-script
PerlHandler Apache::ePerl
</Location>

CGI/Perl的最大致命弱点,即人们说所的速度和系统资源。的确,它
在这个方面有很大不足。我们知道一般CGI/Perl每一次启动都要启动一个
进程,如果有2万人同时在一个聊天室里聊天,那么就会产生2万个进程,
在强大的中央处理和在大的内存都很难处理如此之多的进程。但是每一种
东西,总是会有最终的解决方案,要不然微软的HOTMAIL为何至今还用CGI
呢?

  Fast-CGI,是把原来的CGI进行优化,即原来2万的用户聊天的时候,
只启动一个进程,这样大大节省了系统资源。比如普通的脚本:

Print “Content-type : text/htmlnn”;
Print “I Love Perl”;
这样的程序,每一次都要启动一个进程。
而使用了FCGI模块以后:
use FCGI;
while(FCGI::accept() >=0 )
{
print "Content-type: text/htmlnn";
print "I Love Perl”;
}
exit 0;
  这样每次之需要启动一个CGI进程,大大缓解了过渡占用系统资源
的问题。

  从CGI转化到FCGI,并不难,只要了解它的基本结构。

  如上面的两个例子,只要把Print“Content-type : text/html\n\n”;
Print“I Love Perl”;这两句,套入响应循环代码中就可以了。当然前
提是你要安装了FCGI这个模块,否则就会出现错误。在UNIX类型系统(包
括: Linux/FreeBSD/SunOs),你可以这样:

  下载,到www.cpan.org下载FCGI模块,然后tar zvxf filename.
tar.gz,完成后出现以该文件名命名的目录,进入目录后,依次输入perl
Makefile.pl、make、maketest,然后开始安装make install。怎样就
完成了。

  在Windows中,我用的是Perl 5.2,本来是Perl 5.6,可是怎么也
没有安装上去,我的朋友也是如此。到
http://www.activestate.com/ppmpackages/5.005/zips下载FCGI模
块后,解压缩。启动MS-DOS窗口。提示符下面输入ppm,然后出现PPM>,
输入install /path/to/filename。就大功告成了。

  CGI的另一个好处是加密性强,大家都知道C/C++编译出来最终运行的
程序是二进制的,你无从猜想它的源代码。而Perl是解析性语言,我想大
多数程序员有和我同样的想法,如何把Perl加密从而保护我们的知识结晶
。当时最为风行的是Perl2Exe,很多人用了它,把自己的Perl加密,当你
得意洋洋的说你的程序是用C编写的时候,Exe2Perl的反编译程序已经出世
了。然而很多人没有意识到Perl从自始至终都提供一个perlcc的程序,可
以将目前的Perl源代码转化成C源代码并编译,方法很简单在CMD模式下面
输入 perlcc filename.pl 即可!在不同的操作系统上可以编译出不同
的兼容操作系统的二进制可执行的CGI。这个时候你就可以骄傲的说,你的
程序使用C编写的了。在这一点,目前任何程序语言都无法与其比美(据我
所知Java可以被反编译出原始代码)。如果你想把你的商用程序出售,而
又不愿意出售源代码,你最好的选择就是CGI了。

  我一直在寻求一个科学的文章,来审视众多语言中那个是最好的。我
想有很多人都是这样。比尔盖茨至今可能还认为世界上最好的语言是Basic
。本我主要地目的是,让更多的人真正知道CGI与其它程序的分别,好与弊
。每种程序语言都有它的好的一面和坏的一面。我们不应该去偏袒某一方,
或诋毁某一方。让CGI的程序员们不会被老板骂。当你用FCGI写出来的程序,
将会比你以前的程序快得多。我目前正致力于把我十几个的商用程序进行FCGI
的优化,效果的确不错。当你学习过CGI ASP和 PHP之后,你会感觉到CGI
更加适合于大型程序的编写。曾经有人这么评论:

  小型站台php(比如GuestBook)

  中型大型用perl+fastcgi(比如Webmail Business)

  巨型用C/C++语言……

  如果您有什么独特见解或疑问,小生愿洗耳恭听,电邮给我Tanshuai@Bigfoot.com。

(出处:不详 )

相关文章:
 
·ASP实现文件在线压缩和解压缩
·网际快车FlashGet使用技巧荟萃
·一个天气预报的小偷
·Are you ready?
·ASP简介
·ASP基础
·ASP脚本基础
·ASP脚本变量、函数、过程和条件语句
·乔客论坛惊暴UPfile严重漏洞!
·ASP脚本循环语句
相关软件:
 
·动感下载系统 2.0(access版)k170美化版带天空华军小偷
·风韵设计综合娱乐网 v4.0 功能增强完美版
·Boai BLBS V1000
·Boai BLBS V3.3
·中国龙BlogVer 1.1.0MX版
·中国大学生设计网 全站程序第三版
·518主机域名在线管理平台 v1.5
·Zend StudioClient V3.5.1 特别版
·Zend Studio Client for Linux V3.5.1 特别版
·PHP v4.3.9 RC1
  特别推荐
  热点TOP10