90 likes | 403 Views
Perl 简介. 2011 级 ACM 班 沈思亮. Perl 是一种高阶、通用、直译式、动态的程序语言。最初设计者拉里 · 沃尔( Larry Wall )为了让在 UNIX 上进行报表处理的工作变得更方便,决定开发一个通用的脚本语言,而在 1987 年 12 月 18 日发表。. Perl 语言的中心思想. Perl 语言的中心思想可以集成为一句话“ TMTOWTDI ” : There's More Than One Way To Do It. (不只一种方法来做一件事。 )
E N D
Perl 简介 2011级ACM班 沈思亮
Perl是一种高阶、通用、直译式、动态的程序语言。最初设计者拉里·沃尔(Larry Wall)为了让在UNIX上进行报表处理的工作变得更方便,决定开发一个通用的脚本语言,而在1987年12月18日发表。
Perl语言的中心思想 • Perl语言的中心思想可以集成为一句话“TMTOWTDI”: • There's More Than One Way To Do It.(不只一种方法来做一件事。) • Perl的作者拉里·沃尔建议可以把这个缩写词念成“Tim Toady”。这句话后来被扩充成: • There's more than one way to do it, but sometimes consistency is not a bad thing either.(不只一种方法来做一件事,但有时保持一致也不错。) • 另一个Perl程序员常常想起的Perl俗语是: • Easy things should be easy, and hard things should be possible.(简单的事情应该是简单的,复杂的事情应该变得可能。)
优点 • 为了实现这样的目标,并且又因为Larry Wall本人也是一个语言学家,他设计Perl语言时使用了很多语言学的思维。相比C、Pascal这样的“高级”语言而言,Perl语言直接提供泛型变量、动态数组、Hash表等更加便捷的编程元素。Perl具有动态语言的强大灵活的特性,并且还从C/C++、Basic、Pascal等语言中分别借鉴了语法规则,从而提供了许多冗余语法。使得程序员可以忽略计算机内部资料存储、类型、处理方法、运算规则、甚至内存越界等等的细节,而将思考中心放在所需要的程序逻辑上。就这一点而言,很多Perl程序员认为目前只有Perl、Python等泛型语言才能称为“高级”语言,而C、Pascal甚至C++这些只能称为“中高级”语言而已。可以说,在统一变量类型和掩盖运算细节方面,Perl做得比Python更为出色。 • 由于从其他语言大量借鉴了语法,使得从其他编程语言转到Perl语言的程序员可以迅速上手写程序并完成任务,这使得Perl语言是一门容易用的语言。
缺点 • 也正是因为Perl的灵活性和“过度”的冗余语法,也因此获得了仅写(write-only)的“美誉”,因为Perl程序可以写得很随意(例如,变量不经声明就可以直接使用),但是可能少写一些字母就会得到意想不到的结果(而不报错),许多Perl程序的代码令人难以阅读,实现相同功能的程序代码长度可以相差十倍百倍,这就令程序的维护者(甚至是编写者)难以维护。 • 同样的,因为Perl这样随意的特点,可能会导致一些Perl程序员遗忘语法,以至于不得不经常查看Perl手册。对此,《Learning Perl》一书里建议经常使用Perl编程。 • 建议的解决方法是在程序里使用use strict;以及use warning;,并统一代码风格,使用库,而不是自己使用“硬编码”。Perl同样可以将代码书写得像Python或Ruby等语言一样优雅。
简单的程序或片段 #!/usr/bin/envperl print "Hello, world!\n"; my $animal = “camel”; my $answer = 42; my @mixed = ("camel", 42, 1.23); my %fruit_color = ("apple", "red", "banana", "yellow");
Perl的应用 • Perl主要应用在Unix平台和网页中(PHP,CGI)。Perl拥有海量的模块支持,在解决问题时非常方便。
Perl诗经 • 和C语言一样,在Perl界,难以读懂的程序码大赛是个有名的活动。近似难以读懂的程序码,但方向不同,Perl Poetry是可以被perl编译的诗。新的诗经通常会在Perl Monks网站发表。