个人工具
名字空间
变换
操作

Perl

来自站长百科
跳转到: 导航, 搜索
Perl logo.png

Perl是Practical Extraction and Report Language的缩写,它是由Larry Wall设计的,并由他不断更新和维护,用于在UNIX环境下编程。它于1987年12月18日发表。Perl借取了C、sed、awk、shell scripting以及很多其他程序语言的特性。

Perl一般被称为“实用报表提取语言”(PracticalExtraction andReportLanguage),虽然有时被称做“病态折中垃圾列表器”(PathologicallyEclectic Rubbish Lister)。一般,“Perl”,有大写的 P,是指语言本身,而“perl”,小写的 p,是指程序运行的解释器。Perl的正式网站是 www.perl.org。


目录

Perl特点

Perl具有高级语言(如C)的强大能力和灵活性。事实上,你将看到,它的许多特性是从C语言中借用来的。与脚本语言一样,Perl不需要编译器和链接器来运行代码,你要做的只是写出程序并告诉Perl来运行而已。这意味着Perl对于小的编程问题的快速解决方案和为大型事件创建原型来测试潜在的解决方案是十分理想的。Perl提供脚本语言(如sed和awk)的所有功能,还具有它们所不具备的很多功能。Perl还支持sed到Perl及awd到Perl的翻译器。

Perl的解释程序是开放源码的免费软件,使用Perl不必担心费用。Perl能在绝大多数操作系统运行,可以方便地向不同操作系统迁移。Perl 是一种能完成任务的语言。从一开始,Perl 就设计成可以把简单工作简单化,同时又不失去处理困难问题能力的语言。它可以很容易操作数字,文本,文件和目录,计算机和网络,特别是程序的语言。这种语言应该很容易运行外部的程序并且扫描这些程序的输出获取感兴趣的东西。而且它还应该很容易能把这些你感兴趣的东西交给其它程序做特殊的处理。当然,这种语言还应该很容易在任何现代的操作系统上可以移植地编译和运行。

Perl的基本语法

  • 标量定义,以$号开头,如:$num =1;
  • 数组定义,以@开头,如:@array = (1,2,3);
  • 数组元素调用 @array[index],其中index表示数组下标,如上例,@array[0]的值是1
  • 散列定义,以%开头,如:%hash=("a",1,"b",2);
  • 散列调用 %hash,其中key表示键值,如上例,%hash{"b"}的值是2

Perl发展现状

Perl 6和Parrot并不能代表perl 的未来,发展他们只是我们的长期保险政策.当Perl 6被最终公布时,Perl 5已经用了接近7年了.当时的核心开发人员都基本离开了,现在换了另一批人。(当时我们没有考虑到开发的继承性,不过幸运的是这只是暂时的问题)Perl 5的源代码很复杂,使新的开发人员很棘手。如果没人来对Perl的核心解释器进行改进,Perl能否在未来10多20年继续作为一个开源项目将不清楚.

在2000 年,Larry Wall将Perl 6看成是保持Perl继续下去的方法,而且也努力使他的这个想法在Perl的世界里流传.那个时候的担忧是很明显的:如过足够多的一流黑客都去开发 Java或者是python,而不是Perl,那么我们多年来发展的并引以自豪的技术将被淘汰,而且不值一提.更进一步,—————,从逻辑极限上讲,所有的这些因素都将阻碍Perl的发展,是他成为过时的语言,不能解决将来的问题。

Perl 6被建议不应只作为Perl的新的实现,而应该被设计为一门连普通人都能扩展的语言.这能使不仅对使用Perl感兴趣,而且对从语言本身和编译/解释器方面维护和扩展Perl感兴趣的人大大增加.一个全新的开始能帮助Perl的开发者们把Perl带入一个与现在Perl 5完全不同的全新方向.

今天,3年多已经多去了,Perl的开发社团仍在积极的编写新颖的软件解决现实中个人和公司面临的问题.然而我们认为这些革新和激情还应该出现在别的地方. 我们不期望新的语言能带来一波新的创新的浪潮,我们希望在CPAN中出现大量的有革新的库和模块,也就是你现在能在Perl 5中使用的.

严格的说,Perl 6已经取得了他的预期目标:使Perl继续延续并且有趣,使创造性继续在perl的社区中活跃.

这对perl的将来意味着什么呢?首先,Perl 5的进一步发展是与Perl 6和parrot的开发并行的。现在perl 5有五个活跃的发展分支.最主要的分支,perl 5.8.x,仍然生机勃勃,Jarkko Hietaniemi在今年早期发布了Perl 5.8.0的升级版Perl 5.8.1,而且将此移交给了Nick Clark,他当前正在建造Perl 5.8.3。在十月,Hugo van der Sanden发布了最初的Perl 5.9.0的快照,此开发分枝将持续到Perl 5.10。还有这个夏天,Fotango宣布了Arthur Bergman将为Ponie开发出力,Ponie能把Perl 5.10的代码移值到Parrot上运行,以替换现在的引擎.Perl 5.12可能是第一个能直接在Parrot上运行的版本.

为解决那些使用旧的Perl版本的的人所面临的系统兼容性的问题,Rafael Garcia-Suarez正在开发Perl 5.6.2,也就是对Perl 5.6.1的升级,添加了对最新的操作系统和编译器的支持.Leon和Brocard正在对Perl 5.005_04做同样的升级.

Perl将向哪个方向发展呢? perl在不断的发展,而且是多个方向并行发展.对于日常的编程需求,以下三个版本的Perl将会帮助你把工作弄好:5.8.x,5.6.x和绝对需要的 5.005_0x.而对于那些自己能对Perl代码进行移植的人,5.8.x和5.9.x就足够了.对于疯狂工作的人,能够用Parrot解决很多问题,最后对于不要命的编程爱好者,Larry和他的助手正在开发强大的Perl 6,或许对你有帮助。

对Perl有两种说法:一种语言,或一种平台.但是Perl真正有趣的地方不是在那些语言还是平台的问题上,而在Perl的使用率上。

相关条目

参考资料

留言