Perl




























































Perl

Programming-republic-of-perl.png
编程范型
多重编程范式
設計者
拉里·沃尔
发行时间
1987年

穩定版本
5.28.0[1]
( 2018年6月23日,​4個月前​(2018-06-23


型態系統
Dynamic
作業系統
跨平台
許可證
GNU通用公共许可证、艺术许可协议
網站
http://www.perl.org
啟發語言

AWK、BASIC、Smalltalk、C語言、C++、LISP、sed、Unix shell
影響語言

Python、PHP、Ruby、ECMAScript、Windows PowerShell、Perl 6

Perl是高階、通用、直譯式、動態的程式语言家族。最初设计者拉里·沃尔為了讓在UNIX上進行報表處理的工作變得更方便,決定開發一個通用的腳本語言,而在1987年12月18日發表。目前,Perl语言家族包含两个分支Perl 5以及Perl 6(开发中)。


Perl借用了C、sed、awk、shell脚本以及很多其他程式語言的特性。其中最重要的特性是Perl内部集成了正则表达式的功能,以及巨大的第三方代码库CPAN。


2000年开始,目前拉里·沃尔开始開發Perl 6,來作為Perl的後繼;不過,Perl 6語言的語法有很多轉變,所以Perl 6被視為Perl家族中的另一個語言。[2]


Perl语言的应用范围很广,除CGI以外,Perl被用于图形编程、系统管理、网络编程、金融、生物以及其他领域。由于其灵活性,Perl被称为脚本语言中的瑞士军刀。[3]




目录






  • 1 历史


    • 1.1 早期版本


    • 1.2 早期的Perl 5


    • 1.3 2000年至今


    • 1.4 名称


    • 1.5 骆驼标志


      • 1.5.1 洋葱标志






  • 2 Perl简介


    • 2.1 Perl语言的中心思想


    • 2.2 优点


    • 2.3 缺点




  • 3 Perl的语法


    • 3.1 Perl的Hello World程式


    • 3.2 变量


    • 3.3 判断语句


    • 3.4 循环语句




  • 4 Perl的应用


    • 4.1 以Perl编写的软件


    • 4.2 Perl Data Language




  • 5 Perl的社区文化


    • 5.1 Perl诗经


    • 5.2 JAPH




  • 6 競爭對手


  • 7 Perl 6


  • 8 参考文献


  • 9 參見


  • 10 外部链接


    • 10.1 中文資源、社群


    • 10.2 英文資源、社群







历史



早期版本


拉里·沃尔在1987年开始写作Perl,那时他正在Unisys当程序员[4],并且在1987年12月18日把1.0版本发布到了comp.sources.misc新闻组[5]。这个语言在接下来的几年内很快地发展起来。


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


从前,Perl唯一的文档是一个逐渐变长的手册页。在1991年,《Programming Perl》(被许多Perl程序员因封面称为“骆驼书”),出版了,而且变成了一个真正的Perl语言的参考资料。同时,Perl版本号变成了4,不是因为这个语言的重大改变,而是因为这本书的特殊意义。



早期的Perl 5


Perl 4的一系列维护的版本,最后一版是1993年的Perl 4.036。那时,沃尔废弃了Perl 4,开始开发Perl 5。Perl 5的最初始设计持续到了1994年。《perl5-porters》邮件列表于1994年5月为了共同移植Perl 5而建立。这将主要的论坛留给了Perl 5的开发,维护,和移植[6]


Perl 5.000于1994年10月17日发布[7]。这是一个几乎完全重写了的直译器,而且它给这个语言添加了很多新的特性,包括对象,引用,局部变量,和模块。很重要地,模块提供了一个不用修改直译器就可以扩展语言的方法。这使得核心的直译器非常稳定,即使它允许一般的Perl程序员添加新的语言特性。从此,Perl 5的开发就活跃起来了。


Perl 5.001于1995年3月13日发布。Perl 5.002于1996年2月29日发布,带有参数类型的特性。这允许模块的作者写出像Perl内部命令那样智能的子程序。Perl 5.003于1996年6月25日作为一个安全更新的版本发布。


Perl 5历史中最重要的事件之一是支持了模块。在1995年10月26日,CPAN,一个发布Perl模块的网站,建立了;截至2015年11月,它已经有超过12457个作者写的157794多个模块了[8]


Perl 5.004于1997年5月15日发布,添加了UNIVERSAL包,这给了Perl一个所有的类的基础和要求使用模块的特定版本的能力。另一个重要的开发是包括了CGI.pm模块[9],有助于Perl发展为一个CGI脚本语言[10]


Perl现在也支持在Microsoft Windows和其它一些操作系统下运作[9]


Perl 5.005于1998年7月22日发布。这个版本包括了一个更好的正则引擎,一个编译系统(通过B::*模块),qr//正则引用操作符,一个基础模块的选集,并且又支持了一些其它的操作系统,包括BeOS[11]



2000年至今


Perl 5.6于2000年3月22日发布。大的修改包括64位支持,Unicode字串支持,大文件支持(即:超过2GiB的文件)以及“our”关键字[12][13]。在开发Perl 5.6的时候,开发组决定把版本名称作成类似其它开源项目的;在5.005_63版之后,下一个版本变成了5.5.640,计划是开发版本用奇数,稳定版本用偶数。


2000年时,拉里·沃尔询问社区对Perl新版本的建议。这个进程的结果在361 RFC(评论请求)文件里(这个文件可以指导Perl 6的开发)。2001年[14],工作开始于设计Perl 6,一系列的文件概述了新一代Perl里的改变和设计。它们是作为一期RFC被展示的,而不是一个正式文档。这时,Perl 6的存在还只是一门语言的概述。


Perl 5.8最初于2002年7月18日发布,从此,每年才有一次更新。Perl 5.8的最后一版是5.8.9,发布于2008年12月14日。Perl 5.8改进了Unicode支持,添加了一个新的IO处理机制和新的多线程处理,提高了数字精度,添加了一些新模块[15]


2004年,工作开始于提要——原来的建议文件,但后来变成了Perl 6语言的详述。2005年2月,唐凤,开始开发Pugs,一个用Haskell写的Perl 6直译器[16]。这是最初的一个Perl 6实现。这个努力停止于2006年[17]


2007年12月18日,Perl 1.0的20周年纪念日,Perl 5.10.0发布了。Perl 5.10.0包括了显著的新特性,这拉近了Perl 5和6之间的距离。这些特性包括一个switch语句英语switch statement(叫做“given/when”),正则表达式的更新和智能匹配操作符“~~”[18][19]。同时,另一个Perl 6的实现,Rakudo Perl的开发开始了,一起使用Parrot虚拟机开发。从2009年11月开始,Rakudo Perl已经是每月一更新,现在已经是Perl 6的最完整的一个实现了。


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


2010年4月12日,Perl 5.12.0发布了。显著的提升包括新的package NAME VERSION语法,Yada Yada操作符(有意地用占位符标记没有实现的代码),默认use strict;(在use 5.012;时)完整的Y2038编译,正则转化重载,DTrace支持,和Unicode5.2[20]。Perl 5.12.3于2011年1月21日发布;它包括了新版的模块和一些文档的改变[21]。版本5.12.4于2011年6月20日发布。


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


Perl 5.16发布于2012年5月20日。显著的新特性包括可以指定一个perl的版本来模拟,这允许用户更新perl的版本,但可以运行可能会不兼容的老脚本[22]。Perl 5.16也更新了核心部分来支持Unicode 6.1[22]



名称


Perl原名叫“Pearl”。拉里·沃尔想给这个语言起一个有正面意思的短的名字;他考虑了(并且否定了)字典里每一个3—4个字母的词。他也考虑用他的妻子Gloria的名字命名。沃尔在Perl官方发布之前发现了现有的PEARL英语PEARL (programming language)语言,并且改变了这个名字[23]


当指代这个语言的时候,名字通常是大写的(Perl),就像专有名词一样。当指代这个直译器本身的时候,这个名字通常是小写的(perl),因为大部分类Unix文件系统都是区分大小写的。在《Programming Perl英语Programming Perl》的第一版发布之前,用perl指代这个语言也很普遍;Randal L. Schwartz英语Randal L. Schwartz排版时将这个语言的名字在书中写成大写的以便理解。后来,这个大小写的区别就成为正规的了[24]


全大写的“PERL”是有争议的,而文档中说明“PERL”是不对的[24],一些核心的社区成员将其视为外行的标志[25]。这个名字偶尔会被视为“Practical Extraction and Report Language”的缩写,就像文档[23]顶端和一些纸质书本说的那样[26]。一些全称被建议作为正式名称,包括沃尔自己的幽默的“Pathologically Eclectic Rubbish Lister”[27]。的确,沃尔要求这个名字启示许多不同的扩展[28]



骆驼标志




骆驼标志


Programming Perl》,由奥莱理媒体发布,特色是封面有一张骆驼的图片,因而被称作“骆驼书”[29]。这张骆驼的图片已经成为了Perl非官方的标志和一个黑客的标志,这出现在T恤衫和其它衣服上。


歐萊禮擁有此圖像之商標,並且宣稱,唯有在捍衛「符號之完整性」時,才會行使其法律上的權力[30]。歐萊禮允許此商標在非商業目的之前提下被使用,並同時供了Programming Republic of Perl的圖像以及Powered by Perl的按鈕圖。[31]Perl的另一個識別符號是羊驼。因为《Intermediate Perl》一书的封面是一只羊驼[32]



洋葱标志




洋葱标志


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



Perl简介



Perl语言的中心思想


Perl语言的中心思想可以集成为一句话「TMTOWTDI」:
.mw-parser-output .templatequote{margin-top:0;overflow:hidden}.mw-parser-output .templatequote .templatequotecite{line-height:1em;text-align:left;padding-left:2em;margin-top:0}.mw-parser-output .templatequote .templatequotecite cite{font-size:small}


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.
(不只一种方法來做一件事,但有时保持一致也不错。)



  • TIMTOWTDIBSCINABTE,发音为“Tim Toady Bicarbonate”[34].


另一个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 warnings;,并统一代码风格,使用库,而不是自己使用「硬编码」。Perl同样可以将代码书写得像Python或Ruby等语言一样优雅。



Perl的语法



Perl的Hello World程式


下面是一个在標準輸出設備上輸出Hello World的簡單程式,這種程式通常作為開始學習程式語言的第一個範例:


#!/usr/bin/env perl
print "Hello, world!n";

如果有perl 5.10以上的版本,也可以这样:


#!/usr/bin/env perl
use 5.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,用@字符开头)和关联数组(Associative array,或者称为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;

引用的好处在于,将它传递给函数之后,函数可以修改它指向的变量。而如果传递普通变量,修改的值只在函数内有效。


sub foo
{
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 "should sleep...n";
}


  • if语句

print "hello" if $guest >= 1;


  • unless区块

unless ($credit > 100) {
print "You can not graduate!n";
}


  • unless语句

print "eatn" unless $food == 0;


  • given/when(语句及区块)

use 5.010;
given ($foo)
{
say 'a' when 'a';
when (/b/) { say 'b'; } #when可以写成语句或区块
default { say 'not match'; } #只可以写成区块。
}

由于逻辑運算元的作用,还可以写出不用关键字ifunless的判断语句,如常用的打开文件语句:


open DATA, '<', $filename or die "Can't open $filename: $!n";


循环语句


Perl中的循环语句也是非常的丰富。主要有:


Perl自己的for或者foreach循环(两个完全一样):


@group = 1 .. 10;
for (@group) {
print "$_n";
}
print "$_n" for @group;
foreach (@group) {
print "$_n";
}

从C语言借鉴来的for循环(又可写作foreach,两个完全一样):


for ($i = 0; $i < 10; $i++) {
print "$group[$i]n";
}

while循环:


$i=0;
while ($i < 10) {
print "$group[$i]n";
$i++;
}

do...while循环:


$i = 0;
do {
print "$group[$i]n";
$i++;
} while ($i < 10);

until循环:


$i = 0;
until ($i == 10) {
print "$group[$i]n";
$i++;
}

从PASCAL语言借鉴来的do...until循环:


$i = 0;
do {
print "$group[$i]n";
$i++;
} until ($i == 10);

甚至还有利用动态语言特性,用map函数也可以做循环:


map { print "$_n" } @group;

其实还有其他的循环方式。总而言之,就是TMTOWTDI。



Perl的应用


Perl主要应用在Unix平台和网页中(PHP,CGI)。Perl拥有海量的模块支持,在解决问题时非常方便。CPAN有很多Perl模块。



以Perl编写的软件



  • Bugzilla

  • Movable Type

  • TWiki英语TWiki

  • Frozen Bubble



Perl Data Language


Perl Data Language(简称PDL)是Perl的一个外接模块,也是对Perl功能的一个重要拓展。它使得Perl语言可以直接对2至多维的矩阵直接操作,进行快速的矩阵运算,完成基础的Perl所不能完成的运算,大大拓展了Perl的适用范围。所以PDL本身也是很多其他模块的基础。


而且PDL提供了与很多其他软件包的接口,例如FFTW(一个快速傅立叶变换的软件包),又或者是Mesa(Linux上的OpenGL三维图形渲染包),这些包原来往往仅提供C/C++语言接口。这一功能使PDL成为拓展Perl功能的一个中间层。



Perl的社区文化



Perl诗经


和C語言一樣,在Perl界,難以讀懂的程式碼大賽是個有名的活動。近似難以讀懂的程式碼,但方向不同,Perl Poetry是可以被perl編譯的詩。新的詩經通常會在Perl Monks網站發表。[35]



JAPH


Just another Perl hacker(另一个Perl黑客)是一个和国际C语言混乱代码大赛有着相同精神的社区文化。Perl程序员通过写JAPH代码,来分享自己的编程技术。[36]



競爭對手


因為許多Perl程序的代碼難以閱讀,加上它的面向对象功能被視為不是真正的面向对象(只是模組的模擬),於是很多人拿Perl和其他動態語言來比較。


最常見的比較對象是Python,有人寫了篇文章叫What's wrong with Perl,指出Perl的缺點,鼓勵別人學Python。著名黑客埃里克·斯蒂芬·雷蒙寫Why Python?,該文中一個重要的比較對象就是Perl。A Byte Of Python里的Why Not Perl? 也把Python和Perl比较。


Ruby的作者(松本行弘,Matz)甚至直認他想Ruby作為Perl的後繼者。[37]



Perl 6





Camelia,Perl 6项目的标志[38]



Perl 6正在开发中,它将会与现在的Perl 5版本有很大不同。在Perl的官网介绍中,Perl 6不是Perl 5的下一个版本,而是与Perl 5平行的另一种编程语言。[39]
其中最主要的改變是,Perl 6會是完全物件導向的,有專用於宣告類別的語法:


class Foo is Universal { # inherit form Universal
has $member_variable

method member_function {
print "some string";
}
}

而且可以給變量定義類型,當類型不匹配時,就會報錯[40]


另外,Perl 6提供了不同的正則語法,新的語法稱作「規則」,并且允許使用者在正則中加入空格等以便閱讀,也可以命名一個正則方便調用[41]


Perl 6中的控制流程和循環的判斷條件的括號是可選的,如:


if $percent > 100  {
say "weird mathematics";
}
for 1..3 {
# using $_ as loop variable
say 2 * $_;
}
for 1..3 -> $x {
# with explicit loop variable
say 2 * $x;
}
while $stuff.is_wrong {
$stuff.try_to_make_right;
}

但是如果加入括號,不能緊跟在關鍵字後邊,而要空一格,因為像foo()這樣的形式,會調用函數,而不管它是不是關鍵字[42]


if ($hour > 22) { #正確
say 'should sleep...';
}
if($hour > 22) { #錯誤
say 'should sleep...';
}


参考文献





  1. ^ perl 5.26.2 is now available. cpan.org. 


  2. ^ Perl Core Development - Perl 6


  3. ^ Sheppard, Doug. Beginner's Introduction to Perl. O'Reilly Media. 2000-10-16 [2008-07-27]. 


  4. ^ Wall, Larry, Tom Christiansen and Jon Orwant. Programming Perl, Third Edition. O'Reilly Media. July 2000. ISBN 0-596-00027-8. 


  5. ^ comp.sources.unix. Google Groups. Google. 1988-02-01 [2011-01-13]. 


  6. ^ perl.perl5.porters archive. perl.org. [2011-01-13]. 


  7. ^ perlhist - the Perl history records. Perl 5 version 12.2 documentation. perldoc.perl.org. [2011-01-21]. 


  8. ^ CPAN. CPAN. [2012-04-14]. 


  9. ^ 9.09.1 perl5004delta - what's new for perl5.004. Perl 5 version 12.2 documentation. perldoc.perl.org. [2011-01-08]. 


  10. ^ Patwardhan, Nathan; Siever, Ellen; Spainhour, Stephen. Perl in a Nutshell, Second Edition. O'Reilly Media. 2002. ISBN 978-0-596-00241-1.  使用|accessdate=需要含有|url= (帮助)


  11. ^ perl5005delta - what's new for perl5.005. Perl 5 version 12.2 documentation. perldoc.perl.org. [2011-01-21]. 


  12. ^ perl56delta - what's new for perl v5.6.0. Perl 5 version 12.2 documentation. perldoc.perl.org. [2011-01-21]. 


  13. ^ perl56delta - what's new for perl v5.6.x. Perl 5 version 12.2 documentation. perldoc.perl.org. [2011-01-21]. 


  14. ^ Wall, Larry. Apocalypse 1: The Ugly, the Bad, and the Good. [2011-01-08]. 


  15. ^ perl58delta - what is new for perl v5.8.0. Perl 5 version 12.2 documentation. perldoc.perl.org. [2011-01-21]. 


  16. ^ A Plan for Pugs. O'Reilly Media. 2005-03-03 [2011-01-27]. 


  17. ^ Tang, Audrey. Re: How to Implement Perl 6 in Ten Years. PerlMonks. 2010-04-21 [2011-01-03]. 


  18. ^ perl5100delta - what is new for perl 5.10.0. Perl 5 version 12.2 documentation. perldoc.perl.org. [2011-01-08]. 


  19. ^ perlsyn - Perl syntax. Perl 5 version 12.2 documentation. perldoc.perl.org. [2011-01-21]. 


  20. ^ perl5120delta - what is new for perl v5.12.0. Perl 5 version 12.2 documentation. perldoc.perl.org. [2011-01-08]. 


  21. ^ perldelta - what is new for perl v5.12.3. Perl 5 version 12.2 documentation. perldoc.perl.org. [2011-01-08]. 


  22. ^ 22.022.1 perldelta - what is new for perl v5.16.0. Perl 5 version 16.0 documentation. search.cpan.org. [2012-05-21]. 


  23. ^ 23.023.1 Richardson, Marjorie. Larry Wall, the Guru of Perl. Linux Journal. 1999-05-01 [2011-01-03]. 


  24. ^ 24.024.1 perlfaq1: What's the difference between "perl" and "Perl"?. perldoc.perl.org - Perl 5 version 12.2 documentation. 


  25. ^ Schwartz, Randal. PERL as shibboleth and the Perl community. PerlMonks. [2007-06-01]. 


  26. ^ Steve McConnell (2004) Code Complete, 2nd ed., Microsoft Press, p. 65.


  27. ^ Wall, Larry. perl - The Perl language interpreter. Perl 5 version 12.2 documentation. [2011-01-26]. 


  28. ^ Wall, Larry. Re^7: PERL as shibboleth and the Perl community. PerlMonks. [2011-01-02]. 


  29. ^ Schwartz, Randal L; Phoenix, Tom; foy, brian. Learning Perl, Third Edition. ISBN 978-0-596-00132-2.  使用|accessdate=需要含有|url= (帮助)


  30. ^ O'Reilly—The Perl Camel Usage and Trademark Information


  31. ^ Index of /images/perl


  32. ^ Intermediate Perl


  33. ^ Perl Trademark. The Perl Foundation. [2011-01-09]. (原始内容存档于2011-05-03). 


  34. ^ Can EPO (or TPF) tame TIMTOWTDI?. dev411.com. 2009-01-24. 


  35. ^ | The Lighter Side of Perl Culture (Part V): Poetry


  36. ^ | The Lighter Side of Perl Culture (Part II): JAPH


  37. ^ 「我認為Ruby這個名字作為Perl之後的一門語言的名字真是再恰當不過了。」--摘錄自O'Reilly訪問Matz。


  38. ^ Perl 6. The Perl 6 Project. [2011-02-27]. 


  39. ^ About Perl. [2015-11-19] (英语). "Perl" is a family of languages, "Perl 6" is part of the family, but it is a separate language which has its own development team. 


  40. ^ Perl 5 to 6. 


  41. ^ Perl 5 to 6. 


  42. ^ Perl 5 to 6. 




參見



  • CPAN

  • Perl 6

  • Parrot虚拟机



外部链接





  • Perl.com(O'REILLY)

  • Perl.org

  • Perl 6的開發網頁


  • CPAN - Comprehensive Perl Archive Network:Perl程式的集中地

  • CPAN检索

  • dmoz on Perl


  • Perl Mongers:全球各地的使用者組織


  • Perl Monks:一个很活跃的Perl社区


  • ActiveState:Microsoft Windows上的Perl


  • Strawberry Perl:由Perl社群所提供之Microsoft Windows版Perl

  • Perl6::Perl5::Differences



中文資源、社群




  • Perl@Taiwan(繁体中文)


  • Perl TW Planet(繁体中文)


  • Perl學習手札(繁体中文)


  • 香港Perl推廣组(繁体中文)


  • 中国Perl协会(简体中文)


  • 中国Perl协会的wiki(简体中文)



英文資源、社群




  • GB18030源码过滤软件(英文)


  • GBK源码过滤软件(英文)


  • Big5Plus源碼過濾軟件(英文)


  • EUC-TW源碼過濾軟件(英文)


  • Big5-HKSCS源碼過濾軟件(英文)










Comments

Popular posts from this blog

Information security

Volkswagen Group MQB platform

刘萌萌