Perl是一种动态解释型的脚本语言。 最初的设计者为拉里·沃尔(Larry Wall),它于1987年12月18日发表。Perl借取了C、sed、awk、shell scripting 以及很多其他编程語言的特性。其中最重要的特性是他内部集成了正则表达式的功能,以及巨大的第三方代码库 CPAN。
2000年开始,拉里·沃尔着手开发Perl 6来作为Perl的后继,Perl 6语言的语法有很多转变,也被视为Perl家族中的另一个语言(Perl 6于2019年更名为Raku)。目前,Perl语言家族包含两个分支Perl 5以及Perl 6。
Perl语言应用广泛,涵盖CGI、图形编程、系统管理、网络编程、金融、生物等领域。由于其灵活性,Perl被称为脚本语言中的瑞士军刀。鉴于Perl在实际工程应用中广泛使用,MacOS,Linux,FreeBSD等现代化操作系统默认安装Perl。
Perl原名pearl,但是在这个语言正式发表前,拉里·沃尔发现已经有个语言“pearl”,便将这个语言的名字改成Perl。对于Perl 这四个字母,有一些解释,包括充满幽默感的“Pathologically Eclectic Rubbish Lister”。 “Practical Extraction and Report Language”曾经出现在很多有关Perl的资料里,包括官方的主页。不过事实上这个长名字是后来凑出来的。它的名字第一个字母大写(Perl)时就指这个编程语言,无大写字母(perl)时就指它的编译器。将Perl写成“PERL”是不适当的,因为它并非一个缩写词。
Perl 语言的中心思想可以集成为一句话「TMTOWTDI」:
There's More Than One Way To Do It.(不只一种方法來做这件事。)
Perl 的作者 Larry Wall 建议可以把这个缩写词念成「Tim Toady」。
另一个 Perl 程序员常常想起的 Perl 俗语是:
Easy things should be easy, and hard things should be possible.
Perl骆驼是O'Reilly设计给Perl语言的图标。它也是一种黑客的象征,出现在某些T-shirt和其他衣服标签上。
O'Reilly拥有此图标的商标,并且宣称,唯有在捍卫「符号之完整性」时,才会行使其法律上的权力。O'Reilly允许此商标在非商业目的之前提下被使用,并同时供了 Programming Republic of Perl 的图像以及 Powered by Perl 的按钮图。然而,骆驼其实从未被考虑成为 Perl 的官方识别符号,真要说有的话,其识别符号其实是洋葱。
为了实现这样的目标,并且又因为 Larry Wall 本人也是一个语言学家,他设计Perl语言时使用了很多语言学的思维。相比 C、Pascal 这样的“高级”语言而言,Perl语言直接提供泛型变量、动态数组、Hash表等更加便捷的编程元素。Perl 具有动态语言的强大灵活的特性,并且还从C/C++、Basic、Pascal 等语言中分别借鉴了语法规则,从而提供了许多冗余语法。使得程序员可以忽略计算机内部数据存储、类型、处理方法、运算规则、甚至内存越界等等的细节,而将思考中心放在所需要的程序逻辑上。就这一点而言,很多 Perl 程序员认为目前只有 Perl、Python等泛型语言才能称为“高级”语言,而 C、Pascal 甚至 C++ 这些只能称为“中高级”语言而已。可以说,在统一变量类型和掩盖运算细节方面,Perl 做得比 Python 更为出色。
由于从其他语言大量借鉴了语法,使得从其他编程语言转到 Perl 语言的程序员可以迅速上手写程序并完成任务,这使得 Perl语言是一门容易用的语言。但问题是这样写出来的“类xx语言”的 Perl 程序对不熟悉这种语言的程序员却如同天书,这使得 Perl 语言易写不易读。
也正是因为 Perl 的灵活性和“过度”的冗余语法,也因此获得了 write-only 的“美誉”,因为许多 Perl 程序的代码令人难以阅读,实现相同功能的程序代码长度可以相差十倍百倍。 但 Perl 同样可以将代码书写得像 Python 或 Ruby 等语言一样优雅。
评论