Perl学习资料
网站: https://www.perl.org/ http://zh.wikipedia.org/zh/Perl 书籍:《learning perl》 http://learn.perl.org/ http://www.perl6.org/ http://www.perl6.org/archive/ 简介: Perl是高階、通用、直譯式、動態的程式语言。最初设计者拉里·沃尔(Larry Wall)為了讓在UNIX上進行報表處理的工作變得更方便,決定開發一個通用的腳本語言,而在1987年12月18日發表。目前,版本中包含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被称为脚本语言中的瑞士军刀。 骆驼标志[编辑]《Programming Perl》,由奥莱理媒体发布,特色是封面有一张骆驼的图片,因而被称作“骆驼书”[28]。这张骆驼的图片已经成为了Perl非官方的标志和一个黑客的标志,这出现在T恤衫和其它衣服上。 歐萊禮擁有此圖像之商標,並且宣稱,唯有在捍衛「符號之完整性」時,才會行使其法律上的權力[29]。歐萊禮允許此商標在非商業目的之前提下被使用,並同時供了Programming Republic of Perl的圖像以及Powered by Perl的按鈕圖。[30]Perl的另一個識別符號是羊驼。因为《Intermediate Perl》一书的封面是一只羊驼[31]。 洋葱标志[]Perl基金会拥有一个可选的标志,一个洋葱,允许它的子站点,Perl Mongers,PerlMonks,Perl.org和其它网站使用[32]。 Perl简介[]Perl语言的中心思想[]Perl语言的中心思想可以集成为一句话「TMTOWTDI」:
Perl的作者拉里·沃尔建议可以把这个缩写词念成「Tim Toady」。这句话后来被扩充成:
另一个Perl程序员常常想起的Perl俗语是:
优点[]为了实现这样的目标,并且又因为Larry Wall本人也是一个语言学家,他设计Perl语言时使用了很多语言学的思维。相比C、Pascal这样的“高级”语言而言,Perl语言直接提供泛型變數、动态数组、Hash表等更加便捷的编程元素。Perl具有动态语言的强大灵活的特性,并且还从C/C++、Basic、Pascal等语言中分别借鉴了语法规则,从而提供了许多冗餘语法。使得程序员可以忽略计算机内部資料存储、类型、处理方法、运算规则、甚至内存越界等等的细节,而将思考中心放在所需要的程序逻辑上。就这一点而言,很多Perl程序员认为目前只有Perl、Python等泛型语言才能称为“高级”语言,而Pascal甚至C++这些只能称为“中高级”语言而已。可以说,在统一變數类型和掩盖运算细节方面,Perl做得比Python更为出色。 由于从其他语言大量借鉴了语法,使得从其他编程语言转到Perl语言的程序员可以迅速上手写程序并完成任务,这使得Perl语言是一门容易用的语言。 缺点[ 也正是因为Perl的灵活性和“过度”的冗余语法,也因此获得了仅写(write-only)的“美誉”,因为Perl程序可以写得很随意(例如,变量不经声明就可以直接使用),但是可能少写一些字母就会得到意想不到的结果(而不报错),许多Perl程序的代码令人难以阅读,实现相同功能的程序代码长度可以相差十倍百倍,这就令程序的维护者(甚至是编写者)难以维护。
use strict; 以及use warnings; ,并统一代码风格,使用库,而不是自己使用「硬编码」。Perl同样可以将代码书写得像Python或Ruby等语言一样优雅。#!/usr/bin/env perl print "Hello,world!n"; 如果有perl 5.10以上的版本,也可以这样: #!/usr/bin/env perl
use 5.010;
say 这个程序将输出一行字符串:“Hello,world!”,以及一个换行。
变量[ Perl是一种无类型语言(untyped),换句话说,在语言层面上,Perl和大多数编程语言不同,不把变量分成整数、字符、浮点数等等,而只有一种能接受各种类型数据的“无类型”变量。Perl的变量以$字符开头。例如$a=5;$b="Hello";$c=3.2;$d='n这里并不换行'都是合法的Perl语句。
sub foo
{
my $var = shift;
$$var = '1';
}
'2';
$foo;
$$var;
foo ($var 输出“21”,即foo()内改变了$foo。
判断语句[ 因为Perl大量的创造冗余的语法,并且从其他语言中大量的借鉴语法,使得Perl的语法极其丰富和灵活。Perl共有下列几种判断语句:
"hello" if $guest >= 1;
"eatn" unless $food == 0given/when(语句及区块)
use ;
given $foo)
{
say 'a' when 'a';
when (/b/{ say 'b'; } #when可以写成语句或区块
default 'not match'#只可以写成区块。
}
由于逻辑咚阍淖饔茫箍梢孕闯霾挥霉丶 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |