Perl - 维基百科,自由的百科全书

文章推薦指數: 80 %
投票人數:10人

Perl是高階、通用、直譯式、動態的程式语言家族。

最初设计者拉里·沃尔為了讓在UNIX上進行報表處理的工作變得更方便,決定開發一個通用的腳本語言,而在1987年12月18日 ... Perl 维基百科,自由的百科全书 跳到导航 跳到搜索 Perl编程范型多重编程范式:函數、指令式、面向对象(類別為基)、反射、过程式、事件驅動、泛型設計者拉里·沃尔實作者拉里·沃尔发行时间1987年12月18日,​34年前​(1987-12-18)穩定版本5.36.0[1]/2022年5月28日,​4個月前​(2022-05-28) 5.34.1[2]/2022年3月13日,​7個月前​(2022-03-13) 預覽版本5.37.0[3] (2022年5月28日,​4個月前​(2022-05-28) ) 型態系統动态實作語言C语言作業系統跨平台許可證艺术许可协1.0[4][5]GNU通用公共许可证[6]文件扩展名.pl,.pm,.t,.pod網站www.perl.org啟發語言AWK、C语言、C++、Lisp、Pascal,sed、Smalltalk80、Unixshell影響語言CoffeeScript、ECMAScript、Groovy、JavaScript、Julia、LPC、Perl6、PHP、Python、Ruby、WindowsPowerShell 維基教科書中有關PerlProgramming的文本 Perl是高階、通用、直譯式、動態的程式语言家族。

最初设计者拉里·沃尔為了讓在UNIX上進行報表處理的工作變得更方便,決定開發一個通用的腳本語言,而在1987年12月18日發表。

目前,Perl语言家族包含两个分支Perl5以及Perl6。

雖然Perl不是正式的首字母縮略詞[7],但仍有各種各樣的逆向首字母缩略词,包括“實用的提取和報告語言”。

[8] Perl借用了C、sed、awk、shell脚本、Lisp以及很多其他程式語言的特性。

其中最重要的特性是Perl内部集成了正则表达式的功能,以及巨大的第三方代码库CPAN。

2000年开始,拉里·沃尔著手開發Perl6來作為Perl的後繼,Perl6語言的語法有很多轉變,也被視為Perl家族中的另一個語言(Perl6於2019年更名為Raku)。

[9] Perl语言应用广泛,涵盖CGI、图形编程、系统管理、网络编程、金融、生物等领域。

由于其灵活性,Perl被称为脚本语言中的瑞士军刀。

[10] 鉴于Perl在实际工程应用中广泛使用,MacOS,Linux,FreeBSD等现代化操作系统默认安装Perl。

目录 1历史 1.1早期版本 1.2早期的Perl5 1.32000年至今 1.4名称 1.5骆驼标志 1.5.1洋葱标志 2Perl简介 2.1Perl语言的中心思想 2.2优点 2.3缺点 3Perl的语法 3.1Perl的HelloWorld程式 3.2变量 3.3判断语句 3.4循环语句 4Perl的应用 4.1以Perl编写的软件 4.2PerlDataLanguage 5Perl的社区文化 5.1Perl诗经 5.2JAPH 6競爭對手 7Raku(旧名Perl6) 8参考文献 9參見 10外部链接 10.1中文資源、社群 10.2英文資源、社群 历史[编辑] 早期版本[编辑] 拉里·沃尔在1987年开始写作Perl,那时他正在Unisys当程序员[11],并且在1987年12月18日把1.0版本发布到了comp.sources.misc新闻组[12]。

这个语言在接下来的几年内很快地发展起来。

沃尔最早的确把这个语言称为“Pearl”(珍珠),因为他希望自己开发的语言有一个吉利的名字而且要尽量短小好记,他甚至声称早已考虑过所有三个及四个字母的词汇,以及自己妻子的名字Gloria。

然而另一门语言PEARL早已存在,为了防止混淆,沃尔才把它改名Perl。

Perl2,于1988年发布,特色是有一个更好的正则表达式引擎,Perl3,于1989年发布,添加了对二进制数据流的支持。

从前,Perl唯一的文档是一个逐渐变长的手册页。

在1991年,《ProgrammingPerl》(被许多Perl程序员因封面称为“骆驼书”),出版了,而且变成了一个真正的Perl语言的参考资料。

同时,Perl版本号变成了4,不是因为这个语言的重大改变,而是因为这本书的特殊意义。

早期的Perl5[编辑] Perl4的一系列维护的版本,最后一版是1993年的Perl4.036。

那时,沃尔废弃了Perl4,开始开发Perl5。

Perl5的最初始设计持续到了1994年。

《perl5-porters》邮件列表于1994年5月为了共同移植Perl5而建立。

这将主要的论坛留给了Perl5的开发,维护,和移植[13]。

Perl5.000于1994年10月17日发布[14]。

这是一个几乎完全重写了的解释器,而且它给这个语言添加了很多新的特性,包括对象,引用,局部变量,和模块。

很重要地,模块提供了一个不用修改直译器就可以扩展语言的方法。

这使得核心的直译器非常稳定,即使它允许一般的Perl程序员添加新的语言特性。

从此,Perl5的开发就活跃起来了。

Perl5.001于1995年3月13日发布。

Perl5.002于1996年2月29日发布,带有参数类型的特性。

这允许模块的作者写出像Perl内部命令那样智能的子程序。

Perl5.003于1996年6月25日作为一个安全更新的版本发布。

Perl5历史中最重要的事件之一是支持了模块。

在1995年10月26日,CPAN,一个发布Perl模块的网站,建立了;截至2015年11月,它已经有超过12457个作者写的157794多个模块了[15]。

Perl5.004于1997年5月15日发布,添加了UNIVERSAL包,这给了Perl一个所有的类的基础和要求使用模块的特定版本的能力。

另一个重要的开发是包括了CGI.pm模块[16],有助于Perl发展为一个CGI脚本语言[17]。

Perl现在也支持在MicrosoftWindows和其它一些操作系统下运作[16]。

Perl5.005于1998年7月22日发布。

这个版本包括了一个更好的正则引擎,一个编译系统(通过B::*模块),qr//正则引用操作符,一个基础模块的选集,并且又支持了一些其它的操作系统,包括BeOS[18]。

2000年至今[编辑] 主要版本 最后更新 舊版本,不再支援:5.5 2004年2月23日 (2004-02-23)[19] 舊版本,不再支援:5.6 2003年11月15日 (2003-11-15)[19] 舊版本,不再支援:5.8 2008年12月14日 (2008-12-14)[19] 舊版本,不再支援:5.10 2009年8月23日 (2009-08-23)[19] 舊版本,不再支援:5.12 2012年11月10日 (2012-11-10)[19] 舊版本,不再支援:5.14 2013年3月10日 (2013-03-10)[19] 舊版本,不再支援:5.16 2013年3月11日 (2013-03-11)[19] 舊版本,不再支援:5.18 2014年10月2日 (2014-10-02)[19] 舊版本,不再支援:5.20 2015年9月12日 (2015-09-12)[19] 舊版本,不再支援:5.22 2017年7月15日 (2017-07-15)[19] 舊版本,不再支援:5.24 2018年4月14日 (2018-04-14)[19] 舊版本,仍被支援:5.26 2018年4月14日 (2018-04-14)[19] 當前版本:5.28 2018年6月23日 (2018-06-23)[19] 格式:舊版本舊版本,仍被支援当前版本最新预览版本未来版本 Perl5.6于2000年3月22日发布。

大的修改包括64位支持,Unicode字串支持,大文件支持(即:超过2GiB的文件)以及“our”关键字[20][21]。

在开发Perl5.6的时候,开发组决定把版本名称作成类似其它开源项目的;在5.005_63版之后,下一个版本变成了5.5.640,计划是开发版本用奇数,稳定版本用偶数。

2000年时,拉里·沃尔询问社区对Perl新版本的建议。

这个进程的结果在361RFC(评论请求)文件里(这个文件可以指导Perl6的开发)。

2001年[22],工作开始于设计Perl6,一系列的文件概述了新一代Perl里的改变和设计。

它们是作为一期RFC被展示的,而不是一个正式文档。

这时,Perl6的存在还只是一门语言的概述。

Perl5.8最初于2002年7月18日发布,从此,每年才有一次更新。

Perl5.8的最后一版是5.8.9,发布于2008年12月14日。

Perl5.8改进了Unicode支持,添加了一个新的IO处理机制和新的多线程处理,提高了数字精度,添加了一些新模块[23]。

2004年,工作开始于提要——原来的建议文件,但后来变成了Perl6语言的详述。

2005年2月,唐凤,开始开发Pugs,一个用Haskell写的Perl6直译器[24]。

这是最初的一个Perl6实现。

这个努力停止于2006年[25]。

2007年12月18日,Perl1.0的20周年纪念日,Perl5.10.0发布了。

Perl5.10.0包括了显著的新特性,这拉近了Perl5和6之间的距离。

这些特性包括一个switch语句(英语:switchstatement)(叫做“given/when”),正则表达式的更新和智能匹配操作符“~~”[26][27]。

同时,另一个Perl6的实现,RakudoPerl的开发开始了,一起使用Parrot虚拟机开发。

从2009年11月开始,RakudoPerl已经是每月一更新,现在已经是Perl6的最完整的一个实现了。

Perl5开发过程中的一次大修改在Perl5.11;开发社区使用了每月更新的形式,这样就可以提前预知3个月以内的发布日期。

2010年4月12日,Perl5.12.0发布了。

显著的提升包括新的packageNAMEVERSION语法,YadaYada操作符(有意地用占位符标记没有实现的代码),默认usestrict;(在use5.012;时)完整的Y2038编译,正则转化重载,DTrace支持,和Unicode5.2[28]。

Perl5.12.3于2011年1月21日发布;它包括了新版的模块和一些文档的改变[29]。

版本5.12.4于2011年6月20日发布。

Perl5.14发布于2011年5月14日。

这个分支的最后一版,5.14.2,发布于2011年9月26日。

Perl5.16发布于2012年5月20日。

显著的新特性包括可以指定一个perl的版本来模拟,这允许用户更新perl的版本,但可以运行可能会不兼容的老脚本[30]。

Perl5.16也更新了核心部分来支持Unicode6.1[30]。

名称[编辑] Perl原名叫“Pearl”。

拉里·沃尔想给这个语言起一个有正面意思的短的名字;他考虑了(并且否定了)字典里每一个3—4个字母的词。

他也考虑用他的妻子Gloria的名字命名。

沃尔在Perl官方发布之前发现了现有的PEARL语言,并且改变了这个名字[31]。

当指代这个语言的时候,名字通常是大写的(Perl),就像专有名词一样。

当指代这个直译器本身的时候,这个名字通常是小写的(perl),因为大部分类Unix文件系统都是区分大小写的。

在《ProgrammingPerl(英语:ProgrammingPerl)》的第一版发布之前,用perl指代这个语言也很普遍;RandalL.Schwartz(英语:RandalL.Schwartz)排版时将这个语言的名字在书中写成大写的以便理解。

后来,这个大小写的区别就成为正规的了[32]。

全大写的“PERL”是有争议的,而文档中说明“PERL”是不对的[32],一些核心的社区成员将其视为外行的标志[33]。

这个名字偶尔会被视为“PracticalExtractionandReportLanguage”的缩写,就像文档[31]顶端和一些纸质书本说的那样[34]。

一些全称被建议作为正式名称,包括沃尔自己的幽默的“PathologicallyEclecticRubbishLister”[35]。

的确,沃尔要求这个名字启示许多不同的扩展[36]。

骆驼标志[编辑] 骆驼标志 《ProgrammingPerl》,由奥莱利媒体发布,特色是封面有一张骆驼的图片,因而被称作“骆驼书”[37]。

这张骆驼的图片已经成为了Perl非官方的标志和一个黑客的标志,这出现在T恤衫和其它衣服上。

奥莱利擁有此圖像之商標,並且宣稱,唯有在捍衛「符號之完整性」時,才會行使其法律上的權力[38]。

奥莱利允許此商標在非商業目的之前提下被使用,並同時供了ProgrammingRepublicofPerl的圖像以及PoweredbyPerl的按鈕圖。

[39]Perl的另一個識別符號是羊驼。

因为《IntermediatePerl》一书的封面是一只羊驼[40]。

洋葱标志[编辑] 洋葱标志 Perl基金会拥有一个可选的标志,一个洋葱,允许它的子站点,PerlMongers,PerlMonks,Perl.org和其它网站使用[41]。

Perl简介[编辑] Perl语言的中心思想[编辑] Perl语言的中心思想可以集成为一句话「TMTOWTDI」: There'sMoreThanOneWayToDoIt.(不只一种方法來做一件事。

) Perl的作者拉里·沃尔建议可以把这个缩写词念成「TimToady」。

这句话后来被扩充成: There'smorethanonewaytodoit,butsometimesconsistencyisnotabadthingeither.(不只一种方法來做一件事,但有时保持一致也不错。

) TIMTOWTDIBSCINABTE,发音为“TimToadyBicarbonate”[42]. 另一个Perl程序员常常想起的Perl俗语是: Easythingsshouldbeeasy,andhardthingsshouldbepossible.(简单的事情应该是简单的,复杂的事情应该尽可能地变得简单。

) 优点[编辑] 为了实现这样的目标,并且又因为LarryWall本人也是一个语言学家,他设计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手册。

对此,《LearningPerl》一书里建议经常使用Perl编程。

建议的解决方法是在程序裡使用usestrict;以及usewarnings;,并统一代码风格,使用库,而不是自己使用「硬编码」。

Perl同样可以将代码书写得像Python或Ruby等语言一样优雅。

Perl的语法[编辑] Perl的HelloWorld程式[编辑] 下面是一个在標準輸出設備上輸出HelloWorld的簡單程式,這種程式通常作為開始學習程式語言的第一個範例: #!/usr/bin/envperl print"Hello,world!\n"; 如果有perl5.10以上的版本,也可以这样: #!/usr/bin/envperl use5.010; say"Hello,world!"; 这个程序将输出一行字符串:“Hello,world!”,以及一个换行。

变量[编辑] Perl是一种无类型语言(untyped),换句话说,在语言层面上,Perl和大多数编程语言不同,不把变量分成整数、字符、浮点数等等,而只有一种能接受各种类型数据的“无类型”变量。

Perl的变量以$字符开头。

例如$a=5;$b="Hello";$c=3.2;$d='\n这里并不换行';都是合法的Perl语句。

Perl中各种变量的运算也很自由,数和含有数的字符串是等效的,可以把数字字符串参与数学计算,也可以反之,让数字参与字符串的构成和操作。

除单个变量(Perl称为标量「Scalar」)之外,Perl还有两种集合类型,分别是数组(Array,用@字符开头)和关联数组(Associativearray,或者称为Hash,用%开头。

类似C++11的STL无序表「unordered_map」和Python的字典「Dictionary」)。

数组可以内含任意可变数目的变量,并以其存储顺序作为索引以完成常数时间的定位;而Hash表,则可以在变量之间建立一一映射,就像字典一样,把不同的变量按照他们的逻辑关系组织起来,并以作为“键”的变量进行索引,完成常数时间的定位。

另外,Perl还有一种特殊的类型,引用(reference),类似于指针,当作标量处理,可以指向标量(含引用)、数组、Hash等任何类型。

如: $foo=\$bar;print$$foo; $foo=\@bar;print@$foo; $foo=\%bar;print%$foo; $foo=\&bar;print$foo->();print&$foo; 引用的好处在于,将它传递给函数之后,函数可以修改它指向的变量。

而如果传递普通变量,修改的值只在函数内有效。

subfoo { my$var=shift; $$var='1'; } my$foo='2'; my$var=\$foo; print$$var; foo($var); print$foo; 输出“21”,即foo()内改变了$foo。

判断语句[编辑] 因为Perl大量的创造冗余的语法,并且从其他语言中大量的借鉴语法,使得Perl的语法极其丰富和灵活。

Perl共有下列几种判断语句: if区块 if($hour>22){ print"shouldsleep...\n"; } if语句 print"hello"if$guest>=1; unless区块 unless($credit>100){ print"Youcannotgraduate!\n"; } unless语句 print"eat\n"unless$food==0; given/when(语句及区块) use5.010; given($foo) { say'a'when'a'; when(/b/){say'b';}#when可以写成语句或区块 default{say'notmatch';}#只可以写成区块。

} 由于逻辑運算元的作用,还可以写出不用关键字if或unless的判断语句,如常用的打开文件语句: openDATA,'100{ say"weirdmathematics"; } for1..3{ #using$_asloopvariable say2*$_; } for1..3->$x{ #withexplicitloopvariable say2*$x; } while$stuff.is_wrong{ $stuff.try_to_make_right; } 但是如果加入括號,不能緊跟在关键字后面,而要空一格,因为用foo()這樣的形式,编译器识别为调用函数foo,而不管它是不是关键字[54]: if($hour>22){#正確 say'shouldsleep...'; } if($hour>22){#錯誤 say'shouldsleep...'; } 参考文献[编辑] ^perl5.36.0isnowavailable.www.nntp.perl.org.[2022-05-28].(原始内容存档于2022-07-05).  ^Perl5.34.1isnowavailable!.www.nntp.perl.org.[2022-03-13].(原始内容存档于2022-04-11).  ^perl5.37.0isnowavailable.www.nntp.perl.org.[2022-05-28].(原始内容存档于2022-07-05).  ^The"ArtisticLicense"-dev.perl.org.dev.perl.org.[2018-12-17].(原始内容存档于2018-07-24).  ^Artistic(页面存档备份,存于互联网档案馆)-fileonthePerl5gitrepository ^PerlLicensing.dev.perl.org.[2011-01-08].(原始内容存档于2011-01-22).  ^Lapworth,Leo.GeneralQuestionsAboutPerl.PerlFAQ.Perl.org.[February24,2012].(原始内容存档于2013-06-22).  ^perl(1):PracticalExtraction/ReportLanguage-Linuxmanpage.Linux.die.net.[2013-07-23].(原始内容存档于2013-06-22).  ^PerlCoreDevelopment-Perl6.[2006-02-10].(原始内容存档于2006-02-07).  ^Sheppard,Doug.Beginner'sIntroductiontoPerl.O'ReillyMedia.2000-10-16[2008-07-27].(原始内容存档于2008-06-04).  ^Wall,Larry,TomChristiansenandJonOrwant.ProgrammingPerl,ThirdEdition.O'ReillyMedia.July2000.ISBN 0-596-00027-8.  ^comp.sources.unix.GoogleGroups.Google.1988-02-01[2011-01-13].(原始内容存档于2013-05-10).  ^perl.perl5.portersarchive.perl.org.[2011-01-13].(原始内容存档于2011-05-01).  ^perlhist-thePerlhistoryrecords.Perl5version12.2documentation.perldoc.perl.org.[2011-01-21].(原始内容存档于2011-01-13).  ^CPAN.CPAN.[2012-04-14].(原始内容存档于2011-02-26).  ^16.016.1perl5004delta-what'snewforperl5.004.Perl5version12.2documentation.perldoc.perl.org.[2011-01-08].(原始内容存档于2011-02-27).  ^Patwardhan,Nathan;Siever,Ellen;Spainhour,Stephen.PerlinaNutshell,SecondEdition.O'ReillyMedia.2002[2011-01-08].ISBN 978-0-596-00241-1.  ^perl5005delta-what'snewforperl5.005.Perl5version12.2documentation.perldoc.perl.org.[2011-01-21].(原始内容存档于2011-02-03).  ^19.0019.0119.0219.0319.0419.0519.0619.0719.0819.0919.1019.1119.12PerlSource.www.cpan.org.[2017-06-05].(原始内容存档于2017-06-01).  ^perl56delta-what'snewforperlv5.6.0.Perl5version12.2documentation.perldoc.perl.org.[2011-01-21].(原始内容存档于2011-02-02).  ^perl56delta-what'snewforperlv5.6.x.Perl5version12.2documentation.perldoc.perl.org.[2011-01-21].(原始内容存档于2010-11-18).  ^Wall,Larry.Apocalypse1:TheUgly,theBad,andtheGood.[2011-01-08].(原始内容存档于2010-11-23).  ^perl58delta-whatisnewforperlv5.8.0.Perl5version12.2documentation.perldoc.perl.org.[2011-01-21].(原始内容存档于2010-11-21).  ^APlanforPugs.O'ReillyMedia.2005-03-03[2011-01-27].(原始内容存档于2012-09-08).  ^Tang,Audrey.Re:HowtoImplementPerl6inTenYears.PerlMonks.2010-04-21[2011-01-03].(原始内容存档于2011-05-11).  ^perl5100delta-whatisnewforperl5.10.0.Perl5version12.2documentation.perldoc.perl.org.[2011-01-08].(原始内容存档于2010-12-21).  ^perlsyn-Perlsyntax.Perl5version12.2documentation.perldoc.perl.org.[2011-01-21].(原始内容存档于2013-08-26).  ^perl5120delta-whatisnewforperlv5.12.0.Perl5version12.2documentation.perldoc.perl.org.[2011-01-08].(原始内容存档于2011-01-04).  ^perldelta-whatisnewforperlv5.12.3.Perl5version12.2documentation.perldoc.perl.org.[2011-01-08].(原始内容存档于2011-06-08).  ^30.030.1perldelta-whatisnewforperlv5.16.0.Perl5version16.0documentation.search.cpan.org.[2012-05-21].(原始内容存档于2012-05-24).  ^31.031.1Richardson,Marjorie.LarryWall,theGuruofPerl.LinuxJournal.1999-05-01[2011-01-03].(原始内容存档于2011-01-26).  ^32.032.1perlfaq1:What'sthedifferencebetween"perl"and"Perl"?.perldoc.perl.org-Perl5version12.2documentation.[2012-07-02].(原始内容存档于2012-07-12).  ^Schwartz,Randal.PERLasshibbolethandthePerlcommunity.PerlMonks.[2007-06-01].(原始内容存档于2007-09-27).  ^SteveMcConnell(2004)CodeComplete,2nded.,MicrosoftPress,p.65. ^Wall,Larry.perl-ThePerllanguageinterpreter.Perl5version12.2documentation.[2011-01-26].(原始内容存档于2011-01-20).  ^Wall,Larry.Re^7:PERLasshibbolethandthePerlcommunity.PerlMonks.[2011-01-02].(原始内容存档于2011-05-11).  ^Schwartz,RandalL;Phoenix,Tom;foy,brian.LearningPerl,ThirdEdition.ISBN 978-0-596-00132-2. 使用|accessdate=需要含有|url=(帮助) ^O'Reilly—ThePerlCamelUsageandTrademarkInformation.[2008-11-12].(原始内容存档于2005-12-26).  ^Indexof/images/perl ^IntermediatePerl.[2012-07-03].(原始内容存档于2012-06-26).  ^PerlTrademark.ThePerlFoundation.[2011-01-09].(原始内容存档于2011-05-03).  ^CanEPO(orTPF)tameTIMTOWTDI?.dev411.com.2009-01-24[2012-07-03].(原始内容存档于2012-06-25).  ^TheLighterSideofPerlCulture(PartV):Poetry.[2015-11-19].(原始内容存档于2015-11-19).  ^TheLighterSideofPerlCulture(PartII):JAPH.[2015-11-19].(原始内容存档于2015-11-19).  ^What'swrongwithPerl(页面存档备份,存于互联网档案馆) ^WhyPython?(页面存档备份,存于互联网档案馆) ^AByteOfPython(页面存档备份,存于互联网档案馆) ^WhyNotPerl?(页面存档备份,存于互联网档案馆) ^「我認為Ruby這個名字作為Perl之後的一門語言的名字真是再恰當不過了。

」--摘錄自O'Reilly訪問Matz。

(页面存档备份,存于互联网档案馆) ^Perl6.ThePerl6Project.[2011-02-27].(原始内容存档于2011-02-21).  ^AboutPerl.[2015-11-19].(原始内容存档于2015-11-06)(英语)."Perl"isafamilyoflanguages,"Perl6"ispartofthefamily,butitisaseparatelanguagewhichhasitsowndevelopmentteam.  ^Perl5to6.[2012-07-04].(原始内容存档于2012-07-03).  ^Perl5to6.[2012-07-04].(原始内容存档于2012-07-03).  ^Perl5to6.[2012-07-04].(原始内容存档于2012-07-03).  參見[编辑] CPAN Perl6(Raku) Parrot虚拟机 外部链接[编辑] Perl.com(页面存档备份,存于互联网档案馆)(O'REILLY) Perl.org(页面存档备份,存于互联网档案馆) Perl6的開發網頁(页面存档备份,存于互联网档案馆) CPAN-ComprehensivePerlArchiveNetwork(页面存档备份,存于互联网档案馆):Perl程式的集中地 CPAN检索(页面存档备份,存于互联网档案馆) dmozonPerl PerlMongers(页面存档备份,存于互联网档案馆):全球各地的使用者組織 PerlMonks(页面存档备份,存于互联网档案馆):一个很活跃的Perl社区 ActiveState(页面存档备份,存于互联网档案馆):MicrosoftWindows上的Perl StrawberryPerl(页面存档备份,存于互联网档案馆):由Perl社群所提供之MicrosoftWindows版Perl Perl6::Perl5::Differences 中文資源、社群[编辑] Perl@Taiwan(繁體中文) PerlTWPlanet(繁體中文) Perl學習手札(繁體中文) 香港Perl推廣组(繁體中文) 中国Perl协会(简体中文) 中国Perl协会的wiki(简体中文) 英文資源、社群[编辑] GB18030源码过滤软件(页面存档备份,存于互联网档案馆)(英文) GBK源码过滤软件(页面存档备份,存于互联网档案馆)(英文) Big5Plus源碼過濾軟件(页面存档备份,存于互联网档案馆)(英文) EUC-TW源碼過濾軟件(页面存档备份,存于互联网档案馆)(英文) Big5-HKSCS源碼過濾軟件(页面存档备份,存于互联网档案馆)(英文) 查论编程序设计语言按范型过程式 FORTRAN COBOL ALGOL60 BASIC GW-BASIC PL/I MUMPS(英语:MUMPS) ALGOL68 Forth Pascal TurboPascal C Modula-2 Ada83 occam Oberon Go Zig Carbon 面向对象 Simula67 Smalltalk C++ Objective-C Eiffel ObjectPascal Delphi Self CLOS VisualBasic Gambas Ada95 Java C# Vala Crystal(英语:Crystal(programminglanguage)) 多范型 Modula-3 Dylan Python Lua JavaScript Ruby REBOL Red(英语:Red(programminglanguage)) D Factor Scala F# F* Haxe Nim Rust Dart Julia Swift Ballerina(英语:Ballerina(programminglanguage)) 函数式 LISP Scheme CommonLisp Racket Clojure Logo APL/J ML StandardML OCaml Erlang Elixir Haskell Curry SAC Agda Idris Pure(英语:Pure(programminglanguage)) Cuneiform 逻辑式 Prolog Datalog Mercury AnsProlog 脚本语言动态语言 SNOBOL Icon REXX Perl Raku Tcl/Tk CLOS newLISP Python Lua Ruby PHP Hack VBScript Io Julia Shell语言 Unixshell sh csh tcsh ksh bash ash zsh fish sed AWK PowerShell ECMA-262 ECMAScript JavaScript JScript Node.js/Deno CoffeeScript TypeScript Elm PureScript Reason 特定平台.NET C# C++/CLI F# PowerShell VB.NET SmallBasic JVM Java AspectJ(英语:AspectJ) JSP Scala Clojure Groovy Kotlin 特定领域科学计算 Speakeasy(英语:Speakeasy(computationalenvironment)) IDL GDL Maxima Maple MATLAB Octave Scilab Wolfram R SageMath Julia GPU计算 GLSL HLSL OpenCL CUDA Futhark 数据查询 SQL PL/SQL T-SQL SQL/PSM(英语:SQL/PSM) xBase(英语:xBase) XPath XQuery(英语:XQuery) rasql(英语:rasdaman#RasterQueryLanguage) GraphQL 可视化 Simulink LabVIEW Orange(英语:Orange(software)) KNIME(英语:KNIME) Scratch Snap! PowerFx 传媒设计 SuperCollider PureData Processing ChucK 其它 汇编语言 make PostScript XSLT WebAssembly 目录 列表 历史 比较(英语:Comparisonofprogramminglanguages) 时间线(英语:Timelineofprogramminglanguages) 规范控制 BNE:XX542605 BNF:cb124906490(data) GND:4307836-9 LCCN:sh95010633 NKC:ph117992 取自“https://zh.wikipedia.org/w/index.php?title=Perl&oldid=73585028” 分类:​PerlLAMP模式匹配编程语言面向文本编程语言1987年建立的程式語言隐藏分类:​含有访问日期但无网址的引用的页面CS1英语来源(en)包含BNE标识符的维基百科条目包含BNF标识符的维基百科条目包含GND标识符的维基百科条目包含LCCN标识符的维基百科条目包含NKC标识符的维基百科条目 导航菜单 个人工具 没有登录讨论贡献创建账号登录 命名空间 条目讨论 不转换 不转换简体繁體大陆简体香港繁體澳門繁體大马简体新加坡简体臺灣正體 查看 阅读编辑查看历史 更多 搜索 导航 首页分类索引特色内容新闻动态最近更改随机条目资助维基百科 帮助 帮助维基社群方针与指引互助客栈知识问答字词转换IRC即时聊天联络我们关于维基百科 工具 链入页面相关更改上传文件特殊页面固定链接页面信息引用本页维基数据项目 打印/导出 下载为PDF打印页面 在其他项目中 维基共享资源维基教科书 其他语言 AlemannischAragonésالعربيةAsturianuAzərbaycancaŽemaitėškaБеларускаяБългарскиবাংলাCatalàکوردیČeštinaCymraegDanskDeutschΕλληνικάEnglishEsperantoEspañolEestiEuskaraفارسیSuomiFrançaisGaeilgeGalegoગુજરાતીעבריתहिन्दीHrvatskiMagyarՀայերենBahasaIndonesiaItaliano日本語ქართულიҚазақшаಕನ್ನಡ한국어KurdîКыргызчаLatinaLëtzebuergeschLombardLietuviųLatviešuМакедонскиമലയാളംमराठीBahasaMelayuမြန်မာဘာသာनेपालभाषाNederlandsNorsknynorskNorskbokmålଓଡ଼ିଆDeitschPolskiPortuguêsRomânăРусскийСахатылаScotsSrpskohrvatski/српскохрватскиSimpleEnglishSlovenčinaSlovenščinaShqipСрпски/srpskiSvenskaதமிழ்ТоҷикӣไทยTürkçeУкраїнськаاردوTiếngViệt吴语Bân-lâm-gú粵語 编辑链接



請為這篇文章評分?