编程语言 Perl

编程语言 Perl

GPL
Perl
跨平台
2008-09-13

Perl是一种脚本语言。 最初的设计者为拉里·沃尔(Larry Wall),它於1987年12月18日發表。Perl借取了C、sed、awk、shell scripting 以及很多其他程式語言的特性。其中最重要的特性是他内部集成了正则表达式的功能,以及巨大的第三方代码库 CPAN。

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 Media)設計給Perl程式語言的圖標。牠也是一種駭客的象徵,出現在某些T-shirt和其他衣服標籤上。

歐萊禮擁有此圖像之商標,並且宣稱,唯有在捍衛「符號之完整性」時,才會行使其法律上的權力。歐萊禮允許此商標在非商業目的之前提下被使用,並同時供了 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 等语言一样优雅。

加载中

评论(3)

陈金龙
PM下载 Perl
tkorays
tkorays
Perl 学着学着,突然懒得学了53
小卒过河
小卒过河
关注Perl的朋友,推荐阅读:Vincent: Perl 5.16 and Beyond。网址:http://lwn.net/Articles/458714/

Perl 6 发布新版本 Rakudo Star 2018.01

1 月 29 日,Rakudo 和 Perl 6 开发组在官方博客 http://rakudo.org/ 发布消息,宣布 Rakudo Star 2018.01 生产版本正式发布。其源码包已经可下载, 下载地址:https://rakudo.perl6.org/do...

2018/02/01 11:58

Perl 5.26.0 发布,Perl 5.26 系列的首个稳定版

Perl 5.26.0 已发布,这是 Perl 5.26 系列的首个稳定版。该版本中包含的许多变更始于 Perl 核心包含的 CPAN 模块。 自 Perl 5.24.0 发布以来,Perl 5.26.0 的开发时间大约为 13 个月,包括了...

2017/06/01 08:12

2017 Perl 开发者调查,vim 是他们最爱的编辑工具

bip blog 在今年3月7日-4月14日期间针对 Perl 开发者进行了一项调查,收到了来自世界各地开发者的 849 份回复。调查结果显示了 2017 年 Perl 的状况,以及一些有趣的趋势,可供参考。 Q1 使用...

2017/04/28 07:52

Perl 6 语言正式发布

开发了十多年的Perl 6语言在圣诞节正式发布。Larry Wall以Perl 6吉祥物Camelia的名义宣布Perl 6可以在产品中使用,但强调她仍然处于青春期,也就是她有几分成熟了,但还是会有问题。我们知道...

2015/12/25 15:40

Larry Wall 介绍 Perl 6,计划在圣诞节发布

Perl 6 语言的开发持续了十多年,有一个古老的笑话说,Perl 6 将在圣诞节发布,但不知道是哪一年的圣诞节。这个笑话即将成为过去,Perl 作者 Larry Wall 证实,Perl 6 将在 2015 年圣诞节发布...

2015/10/08 08:09

为什么 Perl 6 花了如此长时间开发

Perl 6 用了15年时间开发,它计划在今年底正式发布。Perl 作者 Larry Wall 接受了《Linux Voice》的采访, 谈论了管理一个项目的难处,他的语言学背景如何影响 Perl 的设计,Perl 6 为什么花...

2015/07/16 08:09

Perl 5.22.0 发布

Perl 5.20.0 发布后经过大约 12 个月的开发,终于发布了 Perl 5.22.0 版本,此版本包括大约 590,000 行的代码改进,跨越了 2,400 个文件,包括 94 名贡献者。此版本详细改进请看发行汇总列表...

2015/06/03 08:17

Perl 5.20.2 发布下载

Perl 5.20.2 发布下载,官方现已提供源代码下载(perl-5.20.2.tar.gz),尚未提供相关发行说明,详情请看这里。 Perl是一种脚本语言。 最初的设计者为拉里·沃尔(Larry Wall),它於1987年1...

2015/02/16 07:04

Perl6 1.0 版本将会在今年圣诞节发布

当你看到这篇文章时肯定是特别吃惊,因为 Larry 发表声明说 Perl 6 开发者计划在其 61 岁生日之时发布 Perl6 1.0 开发版本,在 2015 年圣诞节正式发布 1.0 版本。 之前已经有新闻说 2015 将是...

2015/02/02 07:33

没有更多内容

加载失败,请刷新页面

2
回答
Perl语言主要用来做什么,为什么总看到这种语言,却没见身边人用?
tcxu 的回答 2018/12/10 17:22
最佳答案
Perl 来自开源革命的声音, 它是第一个后现代计算机语言,显示出开源中的勤奋,耐心和谦逊。 Larry Wall (1988年1月)宣布,他编写了另一个软件工具,以替代UNIX下的awk和sed等工具,他将它称为“Perl”。 1987 – Perl Unix平台上开发出来的语言,做文字处理...
1
回答
perl调用shell脚本问题

我尝试在perl里面调用另外一个perl脚本,因为这个脚本执行的时间比较长,而且顺序也是放在后面执行的。在脚本里面是这样被调用的: system("noh...

2017/08/09 15:03
8
回答
Perl 模块安装不上

@沙枣 你好,想跟你请教个问题: 我想在windows 环境下编译一个perl程序,安装perl模块很多不成功。 怀疑是网络问题,需要repository...

2017/06/19 19:19
1
回答
linux集群,在A机器上执行脚本或语句,把B机器上的文件拷贝到C机器上?

不执行ssh到B上,如何完成操作?求教大神。

2017/05/19 10:33
4
回答
linux下,如何识别文件编码格式

需求: 不知道文件编码格式的情况下,怎么识别文件的编码格式,以便将所有文件的格式转换为utf-8; 试过set fileencoding ,此方法不行,得...

2017/04/13 19:53
1
回答
如何使用perl脚本处理excel的边框粗细?

各位大神好: 最近领导让做个code和excel的互相转换的perl脚本,调整格式的时候,发现,如果对某一行进行边框着色加粗,发现并没有加粗的选项,这种情...

2017/01/19 13:42
1
回答
如何用perl判断(或者说选取)一类文件的类型?

比如*.txt、*.v这类文件,怎么判断?

2016/12/04 15:50
2
回答
如何选取第一个出现数据和最后一个出现的数据。

现在我有这样的一批数据 a 1 a 2 a 3 a 4 现在我想用数据"a"最后一个数值"4"减去第一个数值"1",请问,如何判断数据是第一个还是...

2016/10/23 12:50
1
回答
perl日志分析,求平均值

现在有一个日志文件要统计,内容大概是这样的: numbs:1234 start something in english numbs:1256 end s...

2016/10/19 22:04
1
回答
perl 中怎样可以把一个长的字符串分开成单个的并以123..n为键分别存入哈希中

例如MEALAVQAGGQGVGSLVTPAVEGGKSIFNCLRHKYAYVKNIRENFDKLVKEEVYLSNVDADVKTKLERNKLTKEK...

2016/10/17 21:47

没有更多内容

加载失败,请刷新页面

PERL(1)

PERL(1) Perl Programmers Reference Guide PERL(1) NAME perl - Practical Extraction and Report Language SYNOPSIS perl [ -sTtuUWX ] [ -hv ] [ -V[:configvar] ] [ -cw ] [ -d[t][:debu...

2013/05/29 22:09
15
0
在centos 6下安装bugzilla

最近项目问题比较多,需要用bug管理软件进行问题管理。目前维护中的开源bug管理工具首选还是bugzilla,只是其用的是perl,环境装起来还是有些费劲。最后的运行环境是httpd+mysql。 ##运行环境...

2016/11/03 13:08
111
0
ONU掉电批量删除

PON口收无光,批量删除ONU设备

2015/11/07 15:17
77
0
SRPM install log & bugzilla install log

正在保存至: “bugzilla-4.2.7-1.fc20.src.rpm” 80% [==============================> ] 2,397,600 780K/s eta(英国中部时84% [===============================> ] 2,512,800 766K/s eta(...

2013/11/14 10:34
35
0
《Perl编程24学时教程》笔记第23课 服务器推送和访问次数计数器

《Perl编程24学时教程》笔记第23课 perl实现服务器推送和访问次数计数器 - 发布:thatboy 来源:Net 【大 中 小】 本文分享下《Perl编程24学时教程》笔记第23课时的内容,介绍下服务器推送和...

2013/10/27 07:24
21
0
一台电脑多个perl版本(转)

一个电脑上可以安装多个perl版本: 方法:下载完以后解压安装在不同的目录 #tar zxvf perl-5.10.0.tar.gz #cd perl-5.10.0 # ./Configure -des -Dprefix=/usr/local/perl (设置不同的安装目录...

2013/08/13 14:44
62
0
Linux系统非root用户安装perl模块(转)

非root权限安装perl 在使用Linux或是unix时,perl是一个非常有用的脚本的语言。 关于perl的模块安装,网上也有很多介绍,一方面可以通过不同套件自带的软件安装工具安装,一方面可以通过cpa...

2013/08/13 13:30
1K
0
Perl完全自学手册(图文教程)

引言 1987年Larry Wall发布Perl1.0以来,用户数一直急剧增加,同时越来越多的程序员与软件开发者(商)参与Perl的开发。从最初被当做一种跨平台环境中书写可移植工具的高级语言开始,Perl被广...

2018/12/03 10:26
5
0
Linux安装Git

Linux安装Git

2016/10/27 16:24
19
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部