PerlCGI程式写作常问问题集(1)入门简介

3/5/2006来源:Perl教程人气:9118

版本:1.0

原文作者:
ShishirGundavaram
TomChristiansen

中译、补充:
萧百龄

文体说明:

译者已就原文中语焉不详、资讯过时,或可作额外补充之处附加注解。这些注解均以星号(*)於适当处(通常为句尾)标示。实际的说明文字则大多紧邻星号所在的段落,自成一段。所有注解文字均以「【译者】」起头。
范例中的Perl程式码已由译者适度加以翻译、去除多馀的括弧,并依perlstylemanpages中所建议的写作格式及习惯稍作修整。
--------------------------------------------------------------------------------
 
1.0-入门简介

--------------------------------------------------------------------------------

Q1.1:为什麽我的HTMLpage/form需要用script?
因为有的时候您需要在HTML文件中使用动态资料(非固定不变的资料)。这包括了日期和时间这类的简单资料,或是一个显示「您是第xxx位访客」的计数器。但它也可能包括根据使用者输入而得出的大饼图/条统图、资料库搜寻产生的结果,或动画等这类的东西。要做出像这样的东西,您唯一的方法是使用CGIscripts(尽管您也可以应用客户端程式,如javaJavascript来达到这个目的,不过那又是完全不同的一回事!)。



--------------------------------------------------------------------------------

Q1.2:CGI各代表什麽?
以下是我的编辑*AndyOram和LindaMui(他们很棒!)所写的一段非常好的描述:

【译者】这是原文的第一作者ShishirG.指他所写的CGIPRogrammingontheWorldWideWeb一书的编辑。

Common向您确保CGI可以使用多种程式语言并和多种
不同的系统互动。它让您自由选择达到目的的方
法,不把您绑死在单独一种作法之下*。

Gateway提示您CGI的力量不在於它本身所做的事,而
在於它提供了连结其他系统的潜力,例如资料库
和图形制造器。

Interface只是表示CGI对如何善用其特性提供了明确的
界定-换句话说,您可以设计程式来适当利用这
个介面。


【译者】似乎有影射Java之意。


--------------------------------------------------------------------------------

Q1.3:到底什麽叫script?我能拿它来能做什麽?
简单的说,script就是程式!好吧、好吧,应该说二者有语意上的差别。如果您真的想知道,那麽去买一本电脑程式设计的书来看(或许该说script设计:-))。

您可以藉着写CGI程式/script变很多魔术。您可以即时制作图形、连结资料库传回【查询】结果,还可以连到Internet上其他的servers去。



--------------------------------------------------------------------------------

Q1.4:什麽是Perl?为什麽有那麽多人用它来做CGI?
答案就在perlmanpage中的前叁行叙述:

Perl是一解译式的语言,专为高效率检视文字档案、从中抽取资料,据以印制报表而设计。

绝大多数CGI应用程式的任务都涉及对资料作某种程度的处理,及连结外在程式。Perl恰好提供了好用的工具,让人轻松愉快地达成这些任务。



--------------------------------------------------------------------------------

Q1.5:有没有教CGI或Perl的书或是线上资料?
NCSA的CGI文件
Forms入门指引
许多CGI资源结点
原始的CGIFAQ
PerlFAQ
由LincolnStein所着,一份很完整的WWW及CGI操作安全FAQ
PaulPhillips所着,CGI安全FAQ
WWWFAQ
【译者】此份FAQ的中译版可在http://www.acer.net/document/cwwwfaq/处取得。

以下是由CyeH.Waldman所整理的CGI和Perl书籍一览表*:

【译者】此表由译者更新,同时加入了原文作者TomC.的Perl书评以供读者参考。请注意:CGI各书的等级评定乃单就其Perl部份的水准及正确性而言。符号说明:(TomC.用骆驼而非星星)

五颗星(*****)==>很棒的书(terrificbooks)
四颗星(****)==>不错的书(finebooks)
叁颗星(***)==>像样的书(decentbooks)
两颗星(**)==>马马虎虎、勉强过得去的书(so-sobooks)
一颗星(*)==>差劲的书(poorbooks)
零颗星(0*)==>大烂书(terriblebooks)
NA==>不适用、无书评(NotApplicable/Available)
v4==>内容较老旧,仅含盖Perl4

作者书名评价出版者所附软体售价(美金)
??CgiProgrammingForDummies
(预定出版日期:1997年1月)NAIDGBooks
$25
JeffreyFriedlMasteringRegularExpressions:PowerfulTechniquesforPerlandOtherTools
(预定出版日期:1997年1月)NAO'Reilly
$30
J.M.IvlerCGIDeveloper'sResource
(预定出版日期:1997年3月)NAPrenticeHall光碟$45
VariousauthorsPerl5WindowsNTProgramming
(预定出版日期:1997年1月)NANewRiders
$45
EricHerrmannTeachYourselfCGIProgrammingwithPerl5inaWeek,2ndEd.NASams.net光碟$40
MarkFeltonCGI:InternetProgrammingC &C
(预定出版日期:1997年3月)NAPrenticeHall
$??
EdTittleCGIBible
(预定出版日期:1996年11月)NAIDGBooks
$??
CraigPatchett&
MattWrightTheCGICookbook:PerlandJavaScript
(预定出版日期:1996年11月)NAWiley光碟$40
BaronWeilDrag-n-DropCGI
(预定出版日期:1997年1月)NAAddison-Wesley
$??
StephenLinesHowToProgramCGIwithPerl5.0NAZiff-Davis光碟$40
BobDennyetal.CGIProgrammingforWindows
(预定出版日期:1997年3月)NAO'Reilly磁片$30
SelenaSol&
GuntherBirznieksInstantWebScriptswithCGI/PerlNAMIS:Press/M&TBooks光碟$40
??PerlForDummies
(预定出版日期:1996年10月)NAIDGBooks
$25
StevenE.Brenner&
EdwinAokiCGIWebScriptingWithPerl
(出版取消)NAMIS:Press/M&TBooks光碟$40
??Perl&CGIProgrammingStarterKitNASams.net
$45
MohammedJ.KabirCGIPrimerPlusforWindowsNAWaite光碟$45
EdTitteletal.FoundationsofWWWProgrammingwithHTMLandCGI,2ndEd.
(预定出版日期:1996年10月)NAIDGBooks光碟$??
JerryMuelverCreatingCoolWebPagesWithPerl**IDGBooks光碟$30
JohnDecemberHTML&CGIUnleashed,ProfessionalReferenceEditionNASams.net光碟$50
EricJohnsonCross-PlatformPerl
(Seealsotheauthor'sbooksite.)
(预定出版日期:1996年9月)****MIS:Press/M&TBooks光碟$35
DanielBerlinetal.CGIProgrammingUnleashedNASams.net
$55
ClintonWongWebClientProgramminginPerl
(预定出版日期:1997年3月)NAO'Reilly
$30
RobertSeymourPerl5
(预定出版日期:1996年10月)Naspringer-Verlag
$40
MheFoghl/TD>Perl5QuickReference*Que
$20
RobertNiles&
JeffryDwightCGIbyExampleNAQue光碟$35
JonathanHageyPCMagazineProgrammingPerl5.0CGIWebPagesforMicrosoftWindowsNT0*Ziff-Davis光碟$35
??WebProgrammingwithPerl
(预定出版日期:1996年8月)NASams.net光碟$40
??Perl5Developer'sGuide
(预定出版日期:1996年12月)NASams光碟$60
DavidMedinetsPerl5byExample** 1/2*Que光碟$35
StephenAsburyetal.CGIHow-ToNAWaite光碟$40
CarlFranklinVisualBasicInternetProgramming
(预定出版日期:1996年5月)NAWiley光碟$40
InfoMagicMotherofPerl
(一套两张光碟)NASSC光碟$35
LarryWalletal.ProgrammingPerl,2ndEd.*****O'Reilly
$40
EugeneKimCGIDeveloper'sGuide
(预定出版日期:1996年5月)**Sams.net光碟$50
RobertMcDanielCGIManualofStyle
(可自线上取得)NAZiff-Davis
$25
??Perl5forDummies
(预定出版日期:1996年)NAIDGBooks光碟$??
Ginsburg&
TallDevelopingInternetapplicationswithPerl
(预定出版日期:1996年3月)NASams.net
$??
KamranHusainPerl5Unleashed*Sams光碟$50
NortonTeachYourselfPerl5,2ndEdition
(预定出版日期:1996年6月)NASams光碟$??
MichaelErwinetal.SpecialEditionUsingCGINAQue
$60
ThomasBoutellCGIProgramminginCandPerl****Addison-Wesley光碟$35
JohanVromansPerl5DesktopReferenceNAO'Reilly
$7
ChristianNeuss&
JohanVromansTheWebmaster'sHandbook:PerlPowerforYourWebServerNAInt'lThomson光碟$30
WilliamE.WeinmanTheCGIBookNANewRiders光碟$45
BrianJepsonWorldWideWebDatabaseProgrammingforWindowsNTNAWiley光碟$40
StevenE.Brenner&
EdwinAokiIntroductiontoCGI/Perl***(v4)MIS:Press/M&TBooks
$20
EdTittel&
SebastionHassingerPerl5ProgrammingSecrets
(预定出版日期:1996年3月)NAIDGBooks光碟$45
DavidHarlanetal.SpecialEditionUsingPerl5forWebProgramming
**Que
$50
ShishirGundavaramCGIProgrammingontheWorldWideWeb**O'Reilly光碟$30
RobertFarrelTheOfficial60MinuteGuidetoCGIProgrammingwithPerl***(v4)IDGBooks
$20
EdTittel&
SebastionHassingerWebProgrammingSecretswithHTML,CGI&PerlNAIDGBooks光碟$45
JohnDeep&
PeterHolfelderDevelopingCGIApplicationswithPerl**(v4)Wiley
$30
JonOrwantPerl5InteractiveCourse***Waite光碟$50
AidanHumphreysetal.Perl5How-To***Waite光碟$45
EricHerrmannTeachYourselfCGIProgrammingwithPerlinaWeek***(v4)Sams.net光碟$40
WalnutCreekPerl
(收录各类资源、档案库、入门指导、实例、sourcecode等)NAWalnutCreek光碟$40
CarlDichter&
MarkPeaseSoftwareEngineeringwithPerl
(进阶级,内容针对软体专业人仕设计;非入门指引)*PrenticeHall磁片$30
EllieQuigleyPerlbyExample***(v4)PrenticeHall
$27
JohnDecember&
MarkGinsburgHTML&CGIUnleashedNASams.net光碟$50
DavidTillTeachYourselfPerlin21Days**(v4)Sams
$30
LarryWall&
RandalL.SchwartzProgrammingPerlNAO'Reilly
$30
RandalL.SchwartzLearningPerl****(v4)O'Reilly
$25
EdTitteletal.FoundationsofWWWProgrammingwithHTMLandCGINAIDGBooks光碟$40
LincolnSteinHowToSetUpandMaintainaWorldWideWebSite,2ndEdition
(预定出版日期:1997年1月)****Addison-Wesley光碟$55

【译者】中文的CGI和Perl的书目则尚待好心的读者提供。



--------------------------------------------------------------------------------

Q1.6:是不是有这方面的邮递论坛(mailinglists)或新闻讨论群组?
每天有无数的CGI高手在「监视」着这个很有用的新闻讨论群组:comp.infosystems.www.authoring.cgi*。

【译者】中文的讨论群中最适合做这方面的讨论的大概要算是tw.bbs.comp.www了。还有,请不要将CGI问题post到comp.lang.perl.misc上头去,别说译者没先警告您喔;-)。

但是,除非您先把FAQ读过一遍,否则您不应该到这个版子上去随便post问题(或其他任何版子;同样的道理)。

网路上有各式各样讨论Perl、CGI,及Web的邮递论坛,但以底下这两个最受欢迎:

cgi-perl-request@webstorm.com【Hypermail档案库】
这个论坛是给发展Perl5CGI模组、或对此有兴趣的人用的。它并不提供任何CGI支援*。
【译者】此mailinglist已经数月没有posts,寿终正寝了。这可能是由於讨论的主题-CGI::*模组套件(详见以下第二篇「Modules(模组)」的说明)已经有好一段时间没有更新了。模组的维护人LincolnStein近一年多来似乎都将重心放在他的CGI.pm上,而CGI.pm也取代了CGI::*这个套件的地位。读者如对CGI::*或CGI.pm有问题的话可写到comp.lang.perl.modules上头去。

libwww-perlrequest@ics.uci.edu【Hypermail档案库】
libwww-perl这个library套件为Web客户及伺服程式设计提供了一套简便的介面*。
【译者】此mailinglist不适合做CGI的讨论。libwww-perl是一项以Perl为发展工具、类似W3C/CERN的libwww的计画(後者用的是C)。

您可以在:
http://www.ics.uci.edu/pub/websoft/libwww-perl取得旧的(Perl4)libwww-perl的相关资料。
最新的Perl5libwww套件可在:
http://www.sn.no/~libwww-perl/处取得。

CPAN:Perl模组同时也可以在多重复制、分散式的CPAN系统取得。这会自动替您选择一个「靠近您的站」。譬如说,您可以抓LWP模组的source或只抓它的readme。



--------------------------------------------------------------------------------

Q1.7:网路上是不是有专门收藏邮递论坛或新闻讨论群组的posts的站?
是的,您可以试试TheUsenetNewstand。所有comp.infosystems.www.*讨论群组的文章都收集在那儿*。同时,cgi-perl及libwww这两个邮递论坛他们也有收集。

【译者】您同时可以试试DejaNews、AltaVista,和HotBot这几个搜寻引擎/资料库。DejaNews甚至连tw.bbs.*都收集(其他两个或许也有,但译者没试过)。