关于学习Perl

 
 

 
关于学习Perl

 

1.小骆驼

2.大骆驼

3.虎豹书

4 Perl 學習手札
http://easun.org/perl/perl-toc/

这三本要完整看完,所有书上的例子弄懂,自己实践一下,能结合具体工作更好。


Perl语言入门(第三版)
又叫小骆驼。初学者使用。
高级Perl编程
又叫黑豹书,应该算是learn perl的升级版,如果想成为perl黑客或者高手的话,不可不读。
Perl语言编程(第三版)
又叫大骆驼。囊括了 Perl 的所有知识,适用于查阅和检索,和 perl 附带的英文手册有一拚。
CGI编程-使用Perl
关于使用 Perl 来编写 CGI 程序。
推荐在线学习资源

英文资源
perlmonks 教程
CGI 教程
Randal L. Schwartz 的 Perl 专栏
perl.com 文章
Perl 用法,窍门收集
中文资源
Perl 学习手札 繁体版
Perl 学习手札 简体版
Flamephoenix 的Perl教程
英文文档资源
在线 perldoc 文档镜像 1
在线 perldoc 文档镜像 2
如果你在 C 盘下装有activeperl,可以参考自带的本地文档file:///C:/Perl/html/index.html
CPAN 资源
CPAN 模块搜索主站
CPAN 镜像
CPAN 模块搜索
CPAN 国内镜像
linuxforum
香港镜像
广州镜像
activeperl ppm 资源
activeperl ppm 下载
activeperl 5.6 ppm 下载
activeperl 5.8 ppm 下载
activeperl 5.6 ppm 下载 :如果你要的模块上面找不到的话,尝试这个
activeperl 5.8 ppm 下载 :如果你要的模块上面找不到的话,尝试这个

 


Perl是一门很有用的语言,可以用它来做很多事。然而,它也仅是一门语言,掌握了Perl,你只是掌握了Computer领域的一小块知识。在学习Perl前,请明确你的学习目的,并采用正确的学习方法和资源。


(一)学习目的

你学Perl的目的是什么?要实现你的目的,光有Perl够吗?让偶帮你分析看看。

1. 我想当一名System Administrator,并将Perl用于SA工作。

想法很好,优秀的SA,Perl能力必备。Perl自身的灵活语法,强大的正则表达式,良好的shell结合能力,以及CPAN的众多模块,会使你的SA工作如鱼得水,工作量倍减。然而,SA工作的本质还在于System,也许值得你花更多时间的,是System自身稳定和安全的维护。你要学习Unix,Linux等OS的操作,学习Apache,Sendmail,Bind,Squid,Mysql等应用配置,还要学习awk,sed等shell script。这些中的每一样要搞熟,都值得你付出很多努力呀。

2. 我想成为Web Programmer,并将Perl用于web development。

想法很好,请努力学习Perl。不要被一些所谓的流行概念迷惑,也不要整天费心思去想CGI什么时候会过时。至少从偶的观点看,有WEB的一天,CGI就永有用武之地。偶不列举国外用CGI driver的大站点,因为那太多了。国内最大的2个Email Services Provider,Sina和网易,他们的webmail就是用CGI实现的,并且每天承担着千万级的访问。

然而你也该认识到,光掌握Perl,对从事web develop来说,还是很不够的。你要学习HTTP协议,学习HTML,XML,JavaScript等web呈现语言,学习mod_cgi,mod_perl等Apache模块,学习SQL语句和database。甚至还要学习PHP,JAVA或.net技术,毕竟这三样很流行,你不一定要爱好它们,但掌握了它们,在国内找工作相对有利。偶很少听说有web development单招Perl Programmer的,这点与国外不一样。同样的,上述偶提到的各个方面,也需要你花很多心思去学习,而绝不是只学好Perl那么简单。

3. 我想成为一名Applications Programmer,将Perl用于applications development

如果是这样,偶劝你还是先学好C/C++吧,毕竟那才是计算机语言的根本。虽然一些简单的applications可以用Perl来编写,虽然Lincoin Stein先生说,他用Perl开发的WEB服务器比Apache还快,但是,Perl开发的Program要想产品化,还有很多problems--它毕竟只是一种解释性Script,底层的很多东西还是基于C的。要想追求高性能和产品化,为什么不用C呢?

当然,如果你只是为自己或自己的company编写applications,那用Perl无可厚非。偶们公司有个LOG部门,每天的工作就是分析海量数据,这用Perl来做足够了。处理文本,Perl强过任何一门语言。然而即使这样,该部门招人时,还是要求你会C/C++.

4. 我想做一名Perl Hacker,并为CPAN贡献modules.

精神很可嘉,希望你能坚持下去。偶达不到这个层次,所以也不好说什么。往这方面发展时,希望你能彻底理解OOP,理解各类引用传递和符号表的概念,否则也就谈不上写modules了。


(二)学习方式

如果没有老师教的话(据偶所知,国内的University/College,很少有开Perl课程的),那么唯一的学习方式就是多看书,多动手写code.

1. 是要多看书,还是多看其他人的Code?

当然是前者。只有你了解原理了,才可灵活运用,写出清晰的code,并形成自己的Code Style(代码风格)。

一味的看别人的code,而不注重基础知识,会使你迷惘而不知所措。因为这样你所学的知识会很散乱,行不成自己的知识体系。

当然,一边看书,一边看别人的Code,也是好的学习方式。但请记住,你看别人的Code,是有助于你去理解书本中的基础知识,不要本末颠倒了。

2. 刚看完了基础书,我想看"Perl高级编程"和"Perl技术内幕"

最近在CU Forum看到很多这种topics,偶一听到就faint。请先保证你彻底理解基础知识了,再去看那些Books吧。曾经有人问偶关于Perl的高级data structure,一聊之下发现他对Perl的基本reference都不甚明了,那还有什么好谈的呢?有多少人分不清楚$var与($var)的区别?又有多少人还不明白$hashref{$key}与$hashref->{$key}的不同?永远不要太心急,请循序渐进来。偶的老师在Perl界也算有点名气,他说完全掌握Perl用了3年时间。多看书,多动手,不要好高骛远哦。


(三)学习资源

偶看过的3本书,觉得都very good,它们是"Learning Perl","Programming Perl","Network Programming with Perl".还有一本好像是"CGI Programming with Perl",没怎么仔细看,就不提了。前2本是Oreilly出版的,别名大小Camel Book(骆驼书),是Perl入门和提高的经典书籍。第3本是Lincoin Stein先生的经典力作,他也是mod_cgi的开发者,其精湛的技术令偶受益终生。这3本书好像都有中文版,去书店看看能否买到。如果你阅读English没问题,那偶建议你还是阅读原版的好。

另外,订阅Perl Mailing List也可令你从中受益,这里列出了所有知名的Perl Mailing List:http://lists.cpan.org/
其中的beginners和beginners-cgi也许对你有用。modperl-user是讨论mod_perl的。

站点方面:

http://learn.perl.org/  这个站点是为学习Perl的People准备的

http://perl.apache.org/docs/  这里有mod_perl的完整Docs

[[i] 本帖最后由 兰花仙子 于 2005-11-5 22:17 编辑 [/i]]

 

 

 

 


ActivePerl V5.8.8.817 for Windows
解释器
DzSoft Perl Editor 5.7.0.9
http://download.pchome.net/development/sever/perl/763.html
它还有汉化包,自己搜一下.
我都是用这个


active perl有什么作用?怎么用?
Dzsoft perl editor有什么作用?怎么用?
他们有什么关系

ActivePerl是Perl语言的Windows版本,Perl是一种很自由而且功能很强大的编程语言,主要被用作 Web 编程、数据库处理、XML 处理以及系统管理,而且Perl 相当快捷实用。
Dzsoft perl editor是Perl/CGI 脚本编写、编辑和调试工具。它有着舒适而直观的用户界面,适合于初学者和高级程序员。它简单得有些奇怪,但是它真的是一款强大的工具。它有调试功能,一个舒适的带语法加亮的编辑器,一个语法检查功能可以找到你脚本里的错误,还有许多其他功能用来方便Perl的开发。


active perl是windows下的perl解释器
dzsoft perl editor 是一个编辑器
dzsoft可以和active perl关联,就可以在编辑器里直接调试程序了。

你用windos的话,必需下载并安装一个 active perl,这样perl在你的机器上才能运行.
至于用用什么编写perl都是可以的,Dzsoft perl editor只是其中一种,比它好用的有很多.你用记事本也可以写perl的


先安装ActivePerl 这是perl解释器
http://www.onlinedown.net/soft/8364.htm
再安装DzSoft Perl Editor 这是编辑器
http://www.duote.com/soft/3014.html

KOMODO IDE

 

1.          http://club.topsage.com/thread-268273-1-1.html


2.       http://www.oschina.net/project/tag/121


Perl开发工具大比拼
* Komodo IDE
      Komodo IDE可以在 Windows、Mac OS X 和 Linux 上运行,并支持通用的开源语言 —— Perl、PHP 和 Ruby。代码智能引擎非常可靠。它扫描所有语言安装找到定制扩展,比如 PEAR 模块。在项目方面,它支持与 CVS、Subversion 和 Perforce 的集成,也允许直接向服务器 FTP 传递代码。 Komodo 是一个商业产品。在我写作本文的时候,这款 IDE 有个人版(US$29.95)和专业版(US$299.95)两个版本可选。它的一个独特的特性是常...


    * Perl Builder
      一个综合,完善的Perl语言编译器。他独有CGI Wizard功能可以帮助你简单直接的创建脚本。它拥有完善的编译和调试功能

    * PerlEdit
      一套不管是 Perl 的菜鸟们或是高手皆适宜的 CGI 编辑工具,它的特色包括有以鲜明色彩来表示语法的功能,可以让整个程式变的容易阅读也更加方便维护,另外它还可以让你在没有 web server 的运作下就能够直接测试已编写好的 CGI 程式是否有误

    * Perl Express
      囊括了perl程序员必需的编写和调试的所有工具,无论是对新手还是对老手都很合适

    * mod_perl
      现在网上已经有大量的关于成功运行mod_perl模块的介绍, 该模块可以让Perl程序员更 ... 一旦Apache服务器中内置了mod_perl的Perl解释器, Perl脚本就可以快速执行。

    * Top Perl Studio
      能够使用它编辑和检查 CGI/PERL 脚本,内置HTTP 服务器,浏览器,文件和服务器浏览,功能和参数完成,代码片断,样板,语法加亮显示,语法检验和人工数据输入界面

    * ActiveState Perl Dev Kit Pro
      为 Perl程序员开发程序提供必不可少的工具,使得创建、构造程序变得容易,可以将perl程序在HP-UX、Linux、Solaris和Windows 平台下生成各自可执行文件,调试Perl脚本也是一件容易的事,支持将 VBScript转换成Perl,也能用Perl创建.NET 和 ActiveX控件

    * PerlWiz
      写perl语言的CGI程式的工具,提供强大的开发界面,perl菜鸟也能轻松写出功能丰富的CGI程序来

    * Opti Perl
      为编程人员提供了一套创建、测试、排错和直接或通过HMTL运行PREL语句的开发环境

    * DzSoft Perl Editor
      一套在 Windows 及 Unix 下 Perl CGI 程式的撰写、编辑及除错工具。这是一套不管是 Perl 的菜鸟们或是高手皆适宜的 CGI 编辑工具,它的特色包括有以鲜明色彩来表示语法的功能,可以让整个程式变的容易阅读也更加方便维护,另外它还可以让你在没有 web server 的运作下就能够直接测试已编写好的 CGI 程式是否有误

    * ActivePerl      ------Perl 的脚本解释器
      一个可以让你任意执行 Perl 程序的工具软件,其包含了包括有 Perl for Win32、Perl for ISAPI、PerlScript、Perl Package Manager四套开发工具程序,可以让你编写出适用于 unix, windows, linux系统的 CGI程序来。。

    * SannySoft Perl Editor
      一个全集成的开发环境,具备多种标记语法,使你编写、调试Perl脚本时更为方便,使用起来是非常容易的,提前你的开发周期并节省大量的时间

    * EngInSite Perl
      一套在 Windows 及 Unix 下 Perl CGI 程式的撰写、编辑及除错工具,不管是 Perl 的菜鸟们或是高手皆适宜的 CGI 编辑工具,特色包括有以鲜明色彩来表示语法的功能,可以让整个程式变的容易阅读也更加方便维护,另外它还可以让你在没有 Web Server 的运作下就能够通过调用 Perl 解释程序测试已编写好的 CGI 程式是否有误,也可以将结果以文本或 HTML 方式输出到窗口中 ...

    * Tavrida PERL Editor
      像Delphi一样的编辑器,用来写Perl和支持数据库的网页,内建Web服务器可供测试,支持数据库

 

 

http://www.oschina.net/project/tag/121


Perl开发工具

 

Perl开发工具 共收录了 23 个项目 —— 第 1 页
集成开发环境 Eclipse
Eclipse是著名的跨平台的自由集成开发环境(IDE)。最初主要用来Java语言开发,但是目前亦有人通过插件使其作为其他计算机语言比如C++和Python的开发工具。 Eclipse的本身只是一个框架平台,但是众多插件的支持使得Eclipse拥有其他功能相对固定的IDE软件很难具有的灵活性。许多软件开发商以Eclipse为框架开发自己的IDE。 Eclipse最初是由IBM公司开发的替代商业软件Visual Age for Java的下一代IDE开发环境,2001年11月贡献给开源...

更多Eclipse信息

编程语言 Perl
Perl是一种脚本语言。 最初的设计者为拉里·沃尔(Larry Wall),它於1987年12月18日發表。Perl借取了C、sed、awk、shell scripting 以及很多其他程式語言的特性。其中最重要的特性是他内部集成了正则表达式的功能,以及巨大的第三方代码库 CPAN。 Perl原名pearl,但是在這個語言官方發表前,拉里·沃尔發現已經有個程式語言“pearl”,便將這個程式語言的名字改成Perl。对于Perl 这四个字母,有一些解釋...

更多Perl信息

Komodo IDE
Komodo IDE可以在 Windows、Mac OS X 和 Linux 上运行,并支持通用的开源语言 —— Perl、PHP 和 Ruby。代码智能引擎非常可靠。它扫描所有语言安装找到定制扩展,比如 PEAR 模块。在项目方面,它支持与 CVS、Subversion 和 Perforce 的集成,也允许直接向服务器 FTP 传递代码。 Komodo 是一个商业产品。在我写作本文的时候,这款 IDE 有个人版(US$29.95)和专业版(US$299.95)两个版本可选。它的一个独特的特性是常...

更多Komodo IDE信息

Perl软件收藏库 CPAN
CPAN是Comprehensive Perl Archive Network的缩写.。它是一个巨大的Perl软件收藏库,收集了大量有用的Perl模块(modules)及其相关的文件。如何使用CPAN 在DOS命令行键入以下指令执行CPAN C:>perl -MCPAN -e shell 第一次进入CPAN时,CPAN将会进行一次配置(configuration)。当配置完成后,就可以利用CPAN来查询CPAN内的Perl模块,并且进行安装。一般操作如下: CPAN> d /bioperl/ 查询有关bioperl的模块 CPAN> install...

更多CPAN信息

Perl Builder
一个综合,完善的Perl语言编译器。他独有CGI Wizard功能可以帮助你简单直接的创建脚本。它拥有完善的编译和调试功能

更多Perl Builder信息

PerlEdit
一套不管是 Perl 的菜鸟们或是高手皆适宜的 CGI 编辑工具,它的特色包括有以鲜明色彩来表示语法的功能,可以让整个程式变的容易阅读也更加方便维护,另外它还可以让你在没有 web server 的运作下就能够直接测试已编写好的 CGI 程式是否有误

更多PerlEdit信息

Perl开发工具 Open Perl IDE
Open Perl IDE 是一个Windows 下的可视化的Perl 集成开发工具。如下图所示

更多Open Perl IDE信息

ActivePerl
一个可以让你任意执行 Perl 程序的工具软件,其包含了包括有 Perl for Win32、Perl for ISAPI、PerlScript、Perl Package Manager四套开发工具程序,可以让你编写出适用于 unix, windows, linux系统的 CGI程序来。。

更多ActivePerl信息

Perl Express
囊括了perl程序员必需的编写和调试的所有工具,无论是对新手还是对老手都很合适

更多Perl Express信息

mod_perl
现在网上已经有大量的关于成功运行mod_perl模块的介绍, 该模块可以让Perl程序员更 ... 一旦Apache服务器中内置了mod_perl的Perl解释器, Perl脚本就可以快速执行。

更多mod_perl信息

ActiveState Perl Dev Kit Pro
为Perl程序员开发程序提供必不可少的工具,使得创建、构造程序变得容易,可以将perl程序在HP-UX、Linux、Solaris和Windows平台下生成各自可执行文件,调试Perl脚本也是一件容易的事,支持将 VBScript转换成Perl,也能用Perl创建.NET 和 ActiveX控件

更多ActiveState Perl Dev Kit Pro信息

Top Perl Studio
能够使用它编辑和检查 CGI/PERL 脚本,内置HTTP 服务器,浏览器,文件和服务器浏览,功能和参数完成,代码片断,样板,语法加亮显示,语法检验和人工数据输入界面

更多Top Perl Studio信息

Symbian Perl
Symbian Perl 是 Symbian S60 手机上的 Perl 语言编程环境。

更多Symbian Perl信息

DzSoft Perl Editor
一套在 Windows 及 Unix 下 Perl CGI 程式的撰写、编辑及除错工具。这是一套不管是 Perl 的菜鸟们或是高手皆适宜的 CGI 编辑工具,它的特色包括有以鲜明色彩来表示语法的功能,可以让整个程式变的容易阅读也更加方便维护,另外它还可以让你在没有 web server 的运作下就能够直接测试已编写好的 CGI 程式是否有误

更多DzSoft Perl Editor信息

Opti Perl
为编程人员提供了一套创建、测试、排错和直接或通过HMTL运行PREL语句的开发环境

更多Opti Perl信息

PerlWiz
写perl语言的CGI程式的工具,提供强大的开发界面,perl菜鸟也能轻松写出功能丰富的CGI程序来

更多PerlWiz信息

JPerl
JPerl 是一个用 Java 语言实现的 Perl 。

更多JPerl信息

Perl 语言开发工具 Padre
Padre 是一个为 Perl 语言开发者提供的集成开发环境,提供了语法高亮和代码重构功能。

更多Padre信息

SannySoft Perl Editor
一个全集成的开发环境,具备多种标记语法,使你编写、调试Perl脚本时更为方便,使用起来是非常容易的,提前你的开发周期并节省大量的时间

更多SannySoft Perl Editor信息

EngInSite Perl
一套在 Windows 及 Unix 下 Perl CGI 程式的撰写、编辑及除错工具,不管是 Perl 的菜鸟们或是高手皆适宜的 CGI 编辑工具,特色包括有以鲜明色彩来表示语法的功能,可以让整个程式变的容易阅读也更加方便维护,另外它还可以让你在没有 Web Server 的运作下就能够通过调用 Perl 解释程序测试已编写好的 CGI 程式是否有误,也可以将结果以文本或 HTML 方式输出到窗口中 ...

Tavrida PERL Editor
像Delphi一样的编辑器,用来写Perl和支持数据库的网页,内建Web服务器可供测试,支持数据库

更多Tavrida PERL Editor信息

Rakudo
Rakudo 是运行Parrot虚拟机的Perl 6规格实现。

更多Rakudo信息

Apache2::ModProxyPerlHtml
Apache2::ModProxyPerlHtml 是一个 Apache 的 mod_perl2 模块的替换产品。用来为反向代理重写 HTML/JavaScript. 链接,支持 Refresh meta. 标签中的链接重写。

 

 

JPerl 是一个用 Java 语言实现的 Perl 。


http://www.oschina.net/p/jperl

 

 

 

 

Perl维基百科

 

http://zh.wikipedia.org/wiki/Perl

 

 

  请帮忙建构Wikipedia和其姊妹计画的未来愿景,并请阅读来自迈克尔·斯诺和吉米·威尔士的公开信。  [隐藏] [帮助我们翻译!] 

(簡體中文)由于服务器程序更新,目前所有小工具及用户脚本均有可能工作不正常。
(繁體中文)由於伺服器程式更新,目前所有小工具及用戶腳本均有可能工作不正常。

Perl
维基百科,自由的百科全书
跳转到: 导航, 搜索
Perl
编程范型 多重编程范式
发行时间 1987年
设计者 拉里·沃尔
最新发行时间 5.10.0/ 2007年12月18日
型态系统 Dynamic
启发语言 AWK, BASIC, BASIC-PLUS, C语言, C++, LISP, Pascal, sed, Unix shell
影响语言 Python, PHP, Ruby, ECMAScript.
操作系统 跨平台
许可证 GNU通用公共许可证, Artistic License
网站http://www.perl.org
Perl是一种脚本语言。 最初的设计者为拉里·沃尔(Larry Wall),它于1987年12月18日发表。Perl借取了C、sed、awk、shell scripting 以及很多其他编程语言的特性。其中最重要的特性是他内部集成了正则表达式的功能,以及巨大的第三方代码库 CPAN。

目录 [隐藏]
1 Perl简介
1.1 Perl 语言的中心思想
1.2 Perl的骆驼图案
1.3 优点
1.4 缺点
2 Perl 的语法
2.1 Perl 的 Hello World 程式
2.2 变量
2.3 判断语句
2.4 循环语句
3 函数
4 Perl的应用
4.1 Perl Data Language
4.2 Perl诗经
5 竞争对手
6 Perl的历史
6.1 Perl 6
7 注释
8 参见
9 外部链接
9.1 中文
 

[编辑] Perl简介
Perl原名pearl,但是在这个语言官方发表前,拉里·沃尔发现已经有个编程语言“pearl”,便将这个编程语言的名字改成Perl。对于Perl这四个字母,有一些解释,包括充满幽默感的“Pathologically Eclectic Rubbish Lister”。“Practical Extraction and Report Language”曾经出现在很多有关Perl的资料里,包括官方的主页。不过事实上这个长名字是后来凑出来的。它的名字第一个字母大写(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的骆驼图案
Perl骆驼是欧莱礼媒体(O'Reilly Media)设计给Perl编程语言的图标。它也是一种黑客的象征,出现在某些T-shirt和其他衣服标签上。

欧莱礼拥有此图像之商标,并且宣称,唯有在捍卫“符号之完整性”时,才会行使其法律上的权力。[1] 欧莱礼允许此商标在非商业目的之前提下被使用,并同时供了 Programming Republic of Perl 的图像以及 Powered by Perl 的按钮图。[2] 然而,骆驼其实从未被考虑成为 Perl 的官方识别符号,真要说有的话,其识别符号其实是洋葱。[3]

[编辑] 优点
为了实现这样的目标,并且又因为 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 等语言一样优雅。

[编辑] Perl 的语法
[编辑] Perl 的 Hello World 程式
下面是一个在标准输出设备上输出 Hello World 的简单程式,这种程式通常作为开始学习编程语言的第一个范例:

#!/usr/bin/perl
print "Hello, world!\n";
这个程序将输出一行字符串:“Hello,world!”,以及一个回车换行符。

[编辑] 变量
Perl 是一种 无类型语言(untyped),换句话说,在语言层面上,Perl 和大多数编程语言不同,不把变量分成整数、字符、浮点数等等,而只有一种能接受各种类型数据的“无类型”变量。Perl的变量以$字符开头。例如$a=5;$b="Hello";$c=3.2;都是合法的 Perl 语句。

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

除单个变量(Perl 称为 Scalar)之外,Perl 还有两种集合类型,分别是数组(Array,用@字符开头)和关联数组(Associative array,或者称为Hash,用%开头。类似 C++ 的 STL map 和 Python 的 Dictionary)。数组可以内含任意可变数目的变量。而Hash表,则可以在变量之间建立一一映射,就像字典一样,可以把不同的变量按照他们的逻辑关系组织起来。

[编辑] 判断语句
因为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 "eat\n" unless $food == 0;
由于逻辑算子的作用,还可以写出不用关键字if或unless的判断语句,如常用的打开文件语句:

open(DATA, "< $filename") or die "Can't open $filename: $!\n";
[编辑] 循环语句
Perl中的循环语句也是非常的丰富。主要有:

Perl自己的for或者foreach循环:

@group = 1 .. 10;
for (@group) {
    print "$_\n";
}
 
foreach (@group) {
    print "$_\n";
}
从C语言借鉴来的for循环:

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关键字也可以做循环:

print map { "$_\n" } @group;
其实还有其他的循环方式。总而言之,就是TMTOWTDI。

[编辑] 函数
Perl提供了可以直接调用的、数目众多的函数。可以对以下对象进行操作:

数组:chomp, join, keys, map, pop, push, reverse, shift, sort, splice, split, unshift, values
数据库:dbmclose, dbmopen
目录:chdir, closedir, mkdir, opendir, readdir, rewinddir, rmdir, seekdir, telldir
文件:binmode, chdir, chmod, chown, chroot, close, eof, fnctl, fileno, flock, getc, glob, ioctl, link, lstat, open, print, printf, read, readdir, readlink, rename, rmdir, seek, select, stat, symlink, sysopen, sysread, syswrite, tell, truncate, umask, unlink, utime, write
组:endgrent, getgrent, getgrgid, getgrname, getpgrp, setgrent, setpgrp
Hash: delete, each, exists, keys, values
主机:endhostent, gethostbyaddr, gethostbyname, sethostent
输入:getc, read, sysread
处理器间通讯:msgctl, msgget, msgrcv, msgsnd, pipe, semctl, semget, semop, shmctl, shmget, hmread, shmwrite
数学:abs, atan2, cos, exp, hex, int, log, oct, rand, sin, sqrt, srand
消息队列:msgctl, msgget, msgrcv, msgsnd
其他:bless, defined, do, eval, formline, import, ref, scalar, syscall, tie, tied, undef, untie, wantarray
网络:endnetent, getnetbyaddr, getnetbyname, getnetent, setnetent
输出:die, print, printf, syswrite, warn, write
口令:endpwent, getpwent, getpwname, getpwuid, setpwent
进程:alarm, die, dump, exec, exit, fork, getlogin, getpgrp, getppid, getpriority, kill, setpriority, sleep, system, times, umask, wait, waitpid
协议:endprotent, getprotobyname, getprotobynumber, getprotoent, getservbyname, getservbyport, getservent, setprotoent
正则表达式:grep, pos, quotemeta, reset, split, study
范围:caller, local, my
服务:endservent, getservbyname, getservbyport, getservent, setservent
套节字:accept, bind, connect, gethostbyaddr, gethostbyname, gethostent, getpeername, getservbyname, getservbyport, getservent, getsockname, getsockopt, listen, recv, select, send, setsockopt, shutdown, socket, socketpair
字符串:chop, chr, crypt, hex, index, join, lc, lcfirst, length, oct, Ord, pack, q, qq, quotemeta, qw, qx, reverse, rindex, split, sprintf, substr, uc, ucfirst, unpack, vec
时间:gmtime, localtime, time
UNIX: chmod, chown, chroot, dump, endgrent, endhostent, endnetent, endprotent, endpwent, endservent, fnctl, fork, getgrent, getgrgid, getgrname, gethostent, getlogin, getnetent, getpgrp, getppid, getpriority, getprotobyname, getprotobynumber, getprotoent, getpwent, getpwname, getpwuid, getservbyname, getservbyport, getservent, ioctl, link, lstat, readlink, select, setgrent, sethostent, setnetent, setpgrp, setpriority, setprotoent, setpwent, setservent, sleep, syscall, times, umask, wait, waitpid
这里可以按字母序查找Perl函数用法。

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

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

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

[编辑] Perl诗经
和C语言一样,在Perl界,难以读懂的程式码大赛是个有名的活动。近似难以读懂的程式码,但方向不同,Perl Poetry是可以被perl编译的诗。新的诗经通常会在Perl Monks网站发表。

另一个Perl hackers的有趣活动是写JAPHs。

[编辑] 竞争对手
因为许多Perl程序的代码难以阅读,加上它的面向对象功能被视为不是真正的面向对象,于是很多人拿Perl和其他动态语言来比较。

最常见是比较对象是Python,有人写了篇文章叫What's wrong with Perl,指出Perl的缺点,鼓励别人学Python。著名黑客埃里克·斯蒂芬·雷蒙写Why Python?,该文中一个重要的比较对象就是Perl。

Ruby的作者(松本行弘,Matz)甚至直认他想Ruby作为Perl的后继者。[4]

[编辑] Perl的历史
1987/10/18发表Perl 1.0
1994年发表Perl 5 始具有OOP的作法
5.8.0 版开始,Perl 具备了Unicode(万国码)支援
将 Big5 编码的档案转成 Unicode,祗需键入下列指令:
perl -Mencoding=big5,STDOUT,utf8 -pe1 < file.big5 > file.utf8

Perl 也内附了 ``piconv,一支完全以 Perl 写成的字码转换工具程式,用法如下:
piconv -f big5 -t utf8 < file.big5 > file.utf8
piconv -f utf8 -t big5 < file.utf8 > file.big5
[编辑] Perl 6
Perl 6正在开发中,它将会与现在的Perl版本有很大不同,但相信还要开发一段长时间。 其中最主要的改变是,Perl 6 会是完全面向对象的,有专用于宣告类别的语法

class Foo is Universal { # inherit form. Universal
    has $member_variable
 
    method member_function {
        print "some string";
    }
}
[编辑] 注释
^ O'Reilly—The Perl Camel Usage and Trademark Information
^ Index of /images/perl
^ Perl Trademark, User Logos, Perl Marks and more
^ “我认为 Ruby 这个名字作为 Perl 之后的一门语言的名字真是再恰当不过了。”--摘录自O'Reilly 访问 Matz。
[编辑] 参见
CPAN
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 协会
香港 Perl 推广组(连接已失效,请到 香港 Perl 推广组(2))
香港 Perl 推广组(2)
Perl@Taiwan
Perl 学习手札
中国 Perl 协会会员中心(通过标签和地域聚合人)
中国 Perl 协会的 wiki(中文翻译)
显示▼隐藏▲查 • 论 • 编 • 历程序设计语言
 
阵列编程语言 A+ - Ada - 汇编语言 - B - Brainfuck - COBOL - Curl - D - Eiffel - Erlang - FORTRAN - IronPython - Java - Jython - LISP - Lua - SCILAB - MATLAB - MATHEMATICA - Nuva - Oberon - OCaml - Perl - PHP - PostScript. - Powerbuilder - Python - R - REXX - Ruby - Self - Smalltalk - Tcl/Tk
 
.NET Framework语言 C++/CLI - C# - F# - J# - Microsoft Visual C# - Visual Basic .NET
 
C/C++语言 C - C++ - Turbo C++ - Borland C++ - C++ Builder- C++/CLI - Objective-C - Microsoft Visual C++
 
BASIC语言 有行号:BASIC - BASICA - GW-BASIC - ETBASIC - GVBASIC
无行号:QBASIC - QuickBASIC - True BASIC - Turbo BASIC - PowerBASIC - DarkBASIC
Visual Basic - Visual Basic .NET - VBScript. - Visual Basic for Applications(VBA)
 
Pascal/Delphi语言 Pascal语法:(Pascal - Turbo Pascal - Object Pascal - Free Pascal)
Pascal+Delphi语法:(Delphi)
 
ECMAScript方言 ActionScript. - DMDScript. - JavaScript. - JScript.
 
GPU用着色器语言 Cg - GLSL - HLSL
 
学术编程语言 APL/J - Clean - Haskell - Jess - Logo - ML - Prolog - Scheme - SAC
 
数据库相关编程语言 Clipper - Visual FoxPro - SQL(PL/SQL - T-SQL) - SQL預存程序
 
其他编程语言 ALGOL - Forth - Modula-2/Modula-3 - MUMPS - PL/I - Simula
 

取自“http://zh.wikipedia.org/zh-cn/Perl”
1个分类: Perl
查看条目 讨论 编辑本页 历史 不转换 简体 繁體 大陆简体 港澳繁體 马新简体 台灣正體 个人工具试用测试版 登录/创建账户 搜索
     导航
首页
分类索引
特色内容
新闻动态
最近更改
随机页面
帮助
帮助
社区
方针与指引
互助客栈
询问处
字词转换
联系我们
关于维基百科
资助维基百科
工具箱
链入页面
链出更改
上传文件
所有特殊页面
可打印版
永久链接
引用此文
其他语言
Alemannisch
العربية
Žemaitėška
Български
বাংলা
Bosanski
Català
Česky
Cymraeg
Dansk
Deutsch
Ελληνικά
English
Esperanto
Español
Eesti
Euskara
فارسی
Suomi
Français
Gaeilge
Galego
ગુજરાતી
עברית
हिन्दी
Hrvatski
Magyar
Bahasa Indonesia
Italiano
日本語
ქართული
한국어
Kurdî / كوردی
Latina
Lëtzebuergesch
Lietuvių
Македонски
മലയാളം
Bahasa Melayu
Nederlands
‪Norsk (nynorsk)‬
‪Norsk (bokmål)‬
Deitsch
Polski
Português
Română
Русский
Саха тыла
Srpskohrvatski / Српскохрватски
Simple English
Slovenčina
Slovenščina
Shqip
Српски / Srpski
Svenska
தமிழ்
Тоҷикӣ
ไทย
Türkçe
Українська
Tiếng Việt
Bân-lâm-gú

本页面最后修订于2009年9月9日 (星期三) 14:44。 本站的全部文字在知识共享 署名-相同方式共享 3.0协议之条款下提供,附加条款亦可能应用。(请参阅使用条款)
Wikipedia®和维基百科标志是维基媒体基金会的注册商标;维基™是维基媒体基金会的商标。
维基媒体基金会是在美国佛罗里达州登记的501(c)(3)免税、非营利、慈善机构。
隐私政策 关于维基百科 免责声明

 

 

 

 

 

 


  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值