精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>编程开发>>● CGI>>初学乍用>>Perl 语言初学入道之一

主题:Perl 语言初学入道之一
发信人: tanshuai()
整理人: workingnow(2002-10-30 13:55:40), 站内信件
                                            PERL 语言初学入道篇
======================================================================
===========================================================           
                             
作者:天水 E-Mail: [email protected] Http://ts.in-china.com
======================================================================
============================================================

Perl语言开课了,我会不定期的为大家提供好的文章!第一期 是 PERL 语
言初学入道篇! Let's GO TO Learn!!!
本篇文章将会初步讲到Perl语言的编写方法,一共3篇,每日期一篇!对于高手
来说可以复习一下,对于初学者来说可以了解和编写基本的Perl语言程序!


<一>Perl与CGI编写介绍及其基本条件
本文将会详细的介绍Perl的基本编写调试和使用方法,让你对Perl有一个全面的
了解。
本节介绍Perl和基本调试编写条件预备条件。
介绍
  随着网络日新月异个发展,网络技术也飞快的进步,原来的HTML语言给我们
带来了无数的方便,可是人们随着人们的要求不断提高,现在的网页Html已经今
非昔比,要想在服务上面超过对手,就要有在Perl程序的帮忙,这不但给用户带
来的方便,也给商家较少了时间,节省了不少大洋。用Perl程序可以实现网上购
物、聊天、讨论、在线申请等多项不同网页大不到的服务,为我们的提供了更好
的服务!

1.CGI概述
CGI是Common Gateway Interface 的简 称 。 其主要的功能是在WWW环境下
 , 藉由从客户端传递一些讯息给WWW Server , 再由 WWW Server 去启动所指
定的程式码来完成特定的工作。所以更明确的说,CGI仅是在WWW Server上可执行
的程式码,而她的工作就是控制讯息要求而且产生并传回所需的文件。撰写CGI的
语言程式为之广泛, Perl, C, C++, Visual Basic, TCL, REXX, Python
, Icon, AppleScript, Active X 等.......。
而我们在此说明Perl程式语言,因为它是迄今为止较为通用流行的语言之一!

2.使用Perl 有甚麼好处?
Perl 在CGI程式设计上非常的受欢迎,当然这其中必有它的好处在,Perl很
容易学习,它支援描述式写法,所以撰写程式在速度上能够很快速。
它擅长馀处理文字档案,及HTML文件,对於字串的处理,匹配及文字格式化提供
了健全的处理能力。
它的弹性化档案输入及输出常式.存取作业系统命令及程式库,很容易在TCP/IP
这个最基本的网际网路协定上发送以及接收资料的能力,都使得Perl非常适合在
CGI上使用。

3.PERL概述 
PERL是由Larry Wall于1986年,为了能在UNIX下处理多个文本文件,以便生成
报表而开发的,而且是免费的,比较流行的版本有:4.0或者5.0.PERL是一种解释性
语言,与C或C++不同:它需要一个专门的解释器,用PERL写的程序,由于它被解释器
读取,并运行,所以人们常称之为PERL SCRIPTS(PERL脚本文件),PERL与C等高级语
言相比,其最大的优势在于程序员能够非常轻松的处理和控制文本,功能十分强大
.早期的PERL是UNIX下利器,不过现在的PERL可以运行在很多的平台上,包括WIN95
/98/NT、Liunx、MS-DOS等,PERL是最有效的开发WEB程序的工具之一,无数的WWW网
站上,都运行了各式各样的PERL程序.

4.Perl CGI编写工具!
至目前为止还没有较好的Perl CGI界面编写程序,一般来说都使用文本编辑
器或可以显示Perl代码的编辑器,对于经常使用界面华的编程员可能觉得有些枯燥
,其实不然,当你在浏览器看到你的工作成功你会感到无比的快乐!
一般编写Perl CGI的程序,以下几种为好:
名称            介绍                     下载
UltraEdit——非常好的文本编辑器,可以编辑Perl、Html等文件,支持中文较好
。 Http://www.ultraedit.com
EditPlus——同上    Http://www.ilike.com.cn
Perl Builder——专门编写Perl程序的软件性能好 Http://www.solutionsoft.c
om

5.Perl 编译程序
  
因为Perl是个需要专门的解释器的程序,所以想要使其运行不需要Per
l编译器!一般在Windows上面为流行的是ActivePerl(下载地址:http://www.a
ctivestate.com/)、Perl For Win32,他可以编译大多数的Perl脚本!在Unix下
有编译程序,一般情况在/usr/bin/目录中。Liunx下面一般情况下只要Apache服
务器都有Perl编译器。不过Perl编译器和版本众多,不是所有的都兼容,比如有
的时候在Windows下编译的程序在Unix下就运行不了,所以你在选择编译器的时候
最好和你的服务器一致。现在较为流行的版本是4.0-5.005。

6.CGI基本编写
CGI编写一般除了需要浏览地址外还要绝对路径!绝对路径就是你的主页上
的目录在硬盘上真正的路径,相对路径其实就是URL。
  <1>首页呼唤Perl的绝对路径:
    服务器要调用CGI里面所给的Perl编译路径,然后启动Perl程序来编译C
GI。一般情况下Unix、Liunx主机的Perl程序绝对路径是/usr/bin/perl,Window
s下按安装目录为本,如ActivePerl的默认安装目录是C:\Perl,那Perl程序路径
就是c:/perl/bin/perl,如果在autoexec.bat那里加入了AcitvePerl 编译路径的
 Path,就可以直接写入Perl即可,CGI程序写法#!<路径名>。
<2>主机发信程序绝对路径:
一般用CGI发邮件的时候要使用。一般情况下Unix、Liunx主机的发信程序绝对路
径是/usr/sbin/sendmail,Windows下的发送程序还不完善,这个要看程序本身的
说明。
<3>主机时间程序:
  因为在编写某些程序的时候会调用时间,一般情况下Unix、Liunx主机的主机
时间程序绝对路径是/bin/date,Windows下面Perl程序会自动提取。
<4>程序本身绝对路径:
  编写程序的时候要绝对路径,是因为该程序要在主机上管理文件, 一般Un
ix、Liunx的绝对值都是自己社定,Windows也是只是在Windows下面要加入盘符。

5.WWW 服务器
这个在网易虚拟社区发表过,在此只是做了一些小小的更改!
使用CGI一定要有网页服务器,它可以直接把CGI的页面显示在浏览器上。选择好
的服务器,将会对Perl编译的效率、速度有着一定的影响。以下我将介绍几个常
用服务器给广大读者,和详细的调试说明。
如何在WIN95/98/NT上调试CGI程序 
方法一:
适合于入门者
支持CGI:大型的CGI程序无法调试,和复杂的CGI程序编译速度慢!
安装sambar4.2(约占3M空间) 
安装简单,无需任何设置即可使用,但对某些perl函数的支持稍差 
sambar4.2是一个小型服务器软件,自带perl5,支持ssi,无需安装perl for win32
 
安装后把cgi文件拷到/sambar/cgi-bin/目录,并把文件名改为*.pl(sambar4.2只
执行以pl结尾的cgi脚本,主页文件拷到/sambar/docs/目录,在浏览器输入你的ht
tp://主机名或http://127.0.0.1/的域名就可调用/sambar/docs目录下主页文件
,输入http://主机名/cgi-bin/*.pl就可调用/sambar/cgi-bin/目录下的cgi脚本
. 注意把CGI脚本的第一行#!去掉,否则会出现无法编译的错误!

方法二:
适合于初学者
安装perl for win32(Activeperl 5.00503) (10兆空间)然后安装 omnihttpd 2.
02(2M空间) 
支持cgi程度: 较好 
omnihttpd也是一个微型服务器软件同样支持perl5,ssi,win-cgi 
把主页文件拷到 httpd/htdocs 目录,cgi脚本拷到httpd/cgi-bin目录即可通过浏
览器调用,注意:有些网友有一个误区,认为安装了perl for win32就可在windows
上通过双击文件运行,这是不对的,因为是脚本文件,故只能在浏览器调用,这也是
为何要装服务器软件的原因. 

方法四:
高级程序员!
1.安装微软的(win98为PWS4.0,winnt为IIS4.0)服务器(约占30M空间) 
2.安装 perl for win32(Activeperl 5.00503 ) (占10M) 
支持cgi程度: 较好,但不支持使用UNIX进程和函数编制的CGI程序 
虚拟根目录为c:/inetpub/wwwroot/ , 把c:/inetpub/wwwroot/cgi-bin目录设置
为可执行该种配置的不但支持cgi,另外还完全支持ASP哦!!!!!! 

如果以上方法不能调试cgi,则还得对注册表动一下手脚: 
运行regedit 
找到: HKEY_LOCAL_MACHINE\System\Currentcontrlset 
\Services\W3svc\Parameters\ScriptMap\ 目录 
增加以下键值: 
键名: ".cgi" 键值: "C:\PERL\BIN\perl.exe %s %s" 
重新开机,一切ok!!! 
或者是对服务器的配置做一些改动

高级方法:
商业用户!
1.安装Apache 1.3.6服务器 (约3兆) 下载地址:http://www.apache.org/
2.安装 perl for win32(Activeperl 5.00503 ) (占10M) 
支持cgi程度: 非常好,几乎可以运行所有CGI程序,但是从这里编译的了的程序
,但是在其它服务器上可能不行。
注意事项: 
1、安装APACHE,注意:安装路径一定要装在硬盘根目录\AP下,即c:\ap 等!!
 
不要装在Program Files下,这样设定绝对路径方便很多,越短越好!

2、装好后,在APACHE下有一个CONF目录,里面有个HTTPD.CONF文件,必须要先设
置好它们才能启动CGI。 

(1) 寻找ServerAdmin,把后面的EMAIL改为你自已的EMAIL,这个改不改不是很重
要。 
(2)寻找ServerName, 把前面的#号去掉,后面改为你的域名 

(3)寻找<Directory />,往下面有一句Options, 
把后面的参数全去掉,加一个All,注意大小写呵。再往下有一句AllowOverride
,也 
把后面的None去掉,加一个All 

(4)寻找<Directory "你安装APACHE的盘符:/Ap/htdocs">,往下面第八行有一句
Options, 
把后面的参数全去掉,加一个All,注意大小写呵。再往下数行有一句AllowOver
ride,也 
把后面的None去掉,加一个All 

(5)寻找#ScriptAlias /cgi-bin/ "C:/Ap/cgi-bin/",把前面的#号去掉 

(6)寻找<Directory "C:/Ap/cgi-bin">,下面有一句AllowOverride, 把后面的参
数去掉,加一个All,注意大小写呵。再往下有一句Options也把后面的None去掉
,加一个All 

(7)寻找AddHandler cgi-script .cgi后面加上.pl ,即 
AddHandler cgi-script .cgi .pl 

(8)如果还想增加SSI,需把下面两行前面的#号去掉。 
AddType text/html .shtml 
AddHandler server-parsed .shtml 

为方便各位设置HTTPD.CONF文件,特意为各位提供一个以设置好的HTTPD.CONF文件
,下载后把它拷贝到\ap\conf目录,即可使用,但条件是你的apache安装在c:\ap目
录. 

(9)还要注意perl脚本中的perl解释路径,应改为: #!c:/perl/bin/perl等等

使用以上服务器要注意的是个问题: 

第1,2,4种方法的绝对路径均可用相对的形式表示,如: "../cgi-bin/ ",但第3种
则必须用完整的硬盘路径表示,如:" C:/Inetput/wwwroot/cgi-bin/ " 
(待续未完............)

======================================================================
============================================================ 

本文如有转裁请保持其完整性!谢谢!希望本文可以为给您有所帮助!
======================================================================
============================================================

--
※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.96.191.124]

[关闭][返回]