Perl简介

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

Perl简介

Perl最初只是Unix系统管理员的一个工具,在工作日里被用在无数的小任务中。从那以后,它逐步发展成为一种全功能的程序设计语言,特别是在各种计算平台上,它被用作Web编程、数据库处理、xml处理以及系统管理——它能够完成所有这些工作,同时仍然是处理小的日常工作的完美工具,这是它的设计初衷。Perl快速、有趣,而且特别有用。很多人因为需要Perl而使用它,又因为热爱它而继续使用它。_摘自Perl语言入门Oreilly_*Perl是一门自由且功能强大的编程语言。自1987年初次登台亮相以来,它的用户数一直急剧膨胀。从最初被当作一种在跨平台环境中书写可移植工具的高级语言开始,Perl就已经被广泛地认为是一种工业级的强大工具,可以在任何地方用来完成你的工作。Perl特别适合系统管理和Web编程。Perl实际上已经被所有Unix(包括linux)捆绑在一起作为标准部件发布,而且也被广泛用于MicrosoftWindows和几乎所有其他操作系统。Amiga、BeOS、VMS、MVS和AppleMacintosh等也只是Perl已经完成移植的平台的一小部分。_摘自Perl语言编程Oreilly_

Perl可以做什么

Perl能做的事太多了!你应该问Perl不能做什么。:)使用Perl可以轻松完成下列任务:*处理文本数据.*网络编程*数据库处理*XML处理*系统维护*图像处理*....
很多人使用Perl来替代shell,很多人使用Perl来避免编写繁琐的C,C 或java程序.如果你的程序要求高效率,你可以把费时部分用C写,然后与Perl结合使用.
你几乎可以使用Perl来解决所有问题.使用Perl与否完全是你的决定:)

谁在使用Perl

著名网站:amazon.com*bbc.com*slashdot.org*imdb.com*macromedia.com
以上只是使用Perl做CGI的网站.众多华尔街的金融机构也都在使用perl来做金融数据的处理,生物工程科学也都在很大程度上使用perl.网络上成千上万的系统管理员都在依靠perl让他们那的工作更容易,更有效.
你也可以访问jobs.perl.org,看看有谁在招聘Perl程序员(yahoo,BBC,amazon,卡耐基大学,银行等),也可以了解市场上对Perl有什么要求.

Perl成功软件

"Webmin"、"AWstats"、"MRTG"、"Spamassassin"、"MovableType"、"Slashcode"
很多时候perl在开发之中只是其中的一个工具.虽然最终产品没有丝毫perl的痕迹,但perl的作用是无可抹杀的.

怎么学习Perl

首先,寻找和你志同道合的人们,是你能否成功学习Perl的关键。一个良好的编程氛围有助于你在Perl的道路上走得更远,Perlchina(www.perlchina.org中国Perl用户推广组)就是一个好的选择。**其次,学习Perl要找本好书。很多参差不齐的教材很可能会把你代入歧途。**更多有关于学习/使用Perl的方法,资源等.请参阅qiang的Perl学习指南。

Perl常见问题和误解。

Perl就是CGI

嘘...小声.说这样的话会让懂Perl的人笑掉大牙:)CGI是CommonGatewayInterface的简称。其主要的功能是在WWW环境下,藉由从客户端传递一些讯息给WWWServer,再由WWWServer去启动所指定的程序码来完成特定的工作.php/Python/Perl都可以撰写基于CGI的程序.另外,Perl可以做太多东西,把它的功能仅限制在网络上实在是暴胗天物.*

Perl难学么?

不难.Perl很容易上手,整个学习过程也都相对容易.Perl看起来和其他的编程语言类似.如果你有写过C,awk,shell或BASIC程序,你对Perl就不会感到陌生.
你并不需要对Perl完全了解来解决大部分的问题.Perl有一句名言,TMTOWTDI"there'smorethanonewaytodoit"(perl可以用不同方法来解决同一个问题).可以说,学习Perl很容易但如果你要想使用Perl来解决更多问题,就要准备一些时间了.
最后,Perl很多时候是一个即时编译的语言.你可以很容易,迅速的测试,调试写出的程序而不用考虑再编译.这会让学习Perl的过程变的更简单.*

Perl程序难以维护

看情况而定.Perl的语法和参数多种多样,变量定义灵活,由此允许程序员通过很多捷径使用很短代码解决问题,上面提到的那句Perl名言在一定程度上验证了这一点.正确利用Perl的这些特性,有经验有纪律的程序员一样可以写出易于维护的代码,但又有多少程序员可以划到上面那一类的?
如果你对Perl了解不够,编程经验不足,使用Perl来开放大型项目往往是个灾难的选择.这就好像,正确使用火药,你可以达到自己的目的,但错误使用很可能就会伤及自身.Perl就是这样.*_我想成为一个Perl程序员么?
把自己的知识只局限为Perl不是一个明智的职业选择.实际上,你可以把上面那一句里的Perl换成任何一个电脑语言.将来,你可能会因为公司不在使用perl了,市场上不在追捧Java了,而失去工作机会.往往是那些懂得几种技术,并可以结合使用的人最容易找到工作.
Perl不代表一切.同样的问题你可以用Perl或PHP或Python来解决."Perlgood,othersbad",因为对Perl的喜好而排斥其他语言实在是狭隘的让人可笑.
很多时候Perl被用作粘合工具,沟通不同程序,语言,另些时候Perl是系统管理员的手中法宝.你的名片不一定写着Perl程序员,但你会时不时的使用Perl来让你的工作变得更容易.

Java/C/Perl_

大部分语言都有自己的设计目的,擅长领域.
C/C 常被用来开发底层程序,程序员要自己做内存管理,就算是非常有经验的C程序员也难免犯overflow的问题.但这并不代表C设计的不好,不安全.因为正是C的这些特性才让我们写出高效的程序,内核,驱动等.作为程序员你就需要了解C的这些特性,尽量避免犯这些错误.
Java和其他stronglytyped语言,在程序设计上就把程序员禁锢在一个保险箱里,使他们避免犯错误.在开发大型工程时,Java程序员写出的程序就容易一致化,由此降低工程开发的成本.这大概解释了市场上对Java程序员的需求.
而Perl是looslytyped,语法和参数多种多样,变量定义灵活.由此给了程序员很大的自由,大大缩短了程序开发时间.但如何让十几个Perl程序员写出一致,易维护的程序就困难多了.
使用任何语言都可以写出糟糕的程序,只是Perl让程序员更容易的写出糟糕的程序罢了.
但很多时候只要能够*解决*问题,没人在乎你用的什么语言.对一门电脑语言爱好但不盲目.选择C而不是Java去写底层系统.选择Perl而不是Java来分析log.

我可以用Perl来做【某种差事】吗?

Perl有足够的弹性和扩充性,从只需要写短短一行的档案处理工作到复杂的系统,几乎没有什麽做不到的。对有些人来说,Perl被用来做shell程式的理想替代品。其他人则用高阶的Perl替代许多原先需要用C或C 一类的低阶语言来达到的程式。哪些差事决定要用Perl来处理,这一切都得看你(或许还有你的经理...)。
如果您有一个提供API的程式库的话,您可用C或C 来写一个Perl延伸,然后便可透过它将程式库中的任何一部分动态载入您的Perl主程式中。您也可以反过来,用C或C 来写主程式,然后以即时动态载入的方式插入一些Perl程式码,产生一个威力强大的应用程式。
话虽如此,对解决某些特定的问题,使用小型、专精,专为特殊用途设计的语言总是比较方便的。Perl的设计是尽力地满足各种不同人的需要,因而不特别偏颇任何人。至於特殊功能语言的例子,随便举两个,譬如PRolog和matlab便是。

Perl的文化及其他

编程本应是有趣的事情.
Perl就象一门自然语言.你可以用它说简单的'你好''再见',也可以写出莎士比亚式的文章.Perl博大精深,没有人可以完全透彻的理解Perl.就算Perl的发明者LarryWall也不一定可以这么说.Larry发明了Perl,成千上万的开发者成就了今天的Perl.
就像艺术家一样,编程也需要灵感和创造力.而Perl给了程序员最大的自由来表达自己,编程真正变成了有趣的事情.使用Perl语言来创作诗歌就是属于Perl文化中的一个奇迹.JackyCheng为我们提供了一个perl诗歌的例子。

下载Perl

下载Windows版本的"Perl"。关于windows下的perl安装网上的教材已经很多,请

最新版的Unix/LinuxPerl"源代码":你也可以通过自己的Linux/Unix的包管理程序来安装.