PERL实例精解

出版时间:2009-1  出版社:机械工业出版社  作者:奎格利  页数:707  译者:陈宗斌  
Tag标签:无  

前言

  读者或许想知道,为什么本书又出新版本?Perl5的变化并不太大;事实上,自从本书第3版之后,其变化就已经很小了。Perl6还没有正式发布,那作者为什么不再等等呢?假设读者在6年前购买了一台Whirlpool洗衣机。这台洗衣机一直运行得很好。但从那时起,洗涤的衣物则是换了一茬又一茬。读者现在可能已是时尚一族,拥有出自名家之手的被褥或拖鞋,并用上了低刺激性、无毒  无害且能生物降解的洗衣粉。而这些都是当初在购买这台洗衣机时无法预料到的。尽管Perl5的变化很小,但整个计算机世界却已经翻天覆地。新革新、新技术、新应用乃至新时尚不断涌现,程序则不得不迎合这些变化。当从GenBank序列数据库中分析数据、为iPhone编写程序、在“myspace”上撰写个人blog、或者适应新的WindowsVista时,都会涉及某些计算机程序,它们很可能就是由Perl编写的。无论如何,我们都必须跟上时代的步伐。这个新版本恰恰是为了达到上面这个目标。  笔者目前正在位于加州Sunnyvale的UCSC1分校讲授Per,台下的学员则是来自硅谷各处的专业人士。笔者总会在第一节课上提出这样一个问题:“你为什么要学习Perl?”回答是各式各样的,譬如:“我们公司在Web上有个拍卖站点,而我是网络管理员,需要用Perl和Apache处理订单信息,并发送给Oracle”,“我在Stanford的基因研究小组工作,需要处理大量数据。我听说只要学好Perl,就不用再找其他程序员来干这个了”,“我是UNX/Linux管理员,而我们公司刚刚决定所有管理脚本都必须更改为Perl形式”,或者“我刚刚遭到解雇,听说在个人简历里加上Perl是绝对必要的”。最让笔者惊讶的是,这些Perl学员来自于各种不同的行业:工程师、科学家、基因研究者、气象学家、经理、销售员、程序员、教师、硬件人员、学生、证券商、各类管理员、作家、  银行家和艺术家等。Perl能为所有人服务,并能胜任各种工作。  不论是谁都得承认:一图胜千言,实例也是如此。本书致力于通过完整而简洁的实例片断来向读者灌输有关Perl的知识。这些脚本实例的每一行都拥有自己的行号,其中一些重要的行还通过黑体字突出显示出来。后面是带有行号的程序输出内容,其行号对应于脚本的行号。再后则是单独的对每一行输出的解释。这些实例都短小精悍,并紧扣正在介绍的主题。由于本书主要是用作Perl课堂上的学生指南,因此书中各个主题都进行了合理的划分。每一章都建立在前一章的基础上,并尽量避免引用后面的内容,同时在主题和主题之间维护较好的逻辑次序。各章结尾处都提供了一些练习。  本书并不仅仅是一本初学者指南,而且是一本对Perl的完整指南。它涵盖了Perl的方方面面,从正则表达式的处理,到报表的格式化,乃至进程间通信。它将教会读者使用Perl,并在此过程中介绍大量有关Linux和Windows的知识。由于Perl最初是针对UNX系统编写的,因此拥有一些UNX背景知识将大大加速学习的进程,不过这并不是说要读者成为UNX专家。任何期望读、写或仅仅是维护Perl程序的人士都能从本书中受益匪浅。  Perl拥有丰富的函数,能够处理字符串、数组、系统接口、网络等。为方便读者理解这些函数的功能,本书在展示函数示例程序前还提供了一些有关该函数的背景信息。这样就能避免出现读者为了获取背景知识、参数含义和函数用途而不得不频繁查阅手册和其他书籍的尴尬情况。  本书附录中含有有关函数定义、命令行开关、特殊变量、常见模块和Perl调试器的完整列表;给出了一段介绍BioPerl模块的说明性文字;还提供了一组有关mod_perl的说明文档,其中mod_perl是一种快速建立服务器端Perl脚本的方式,它能满足通用网关接口(Common Gatewaynterface,CG)的实际需求。  笔者在过去的30年间一直在教书,因此非常了解人们是如何学习的。在讲授了超过14年的Perl之后,笔者发现很多Perl初学者往往会在自学编程时感到灰心丧气。笔者发现,对于绝大多数人而言,最好的学习方法莫过于从简洁的小示例和实践中入门。因此,笔者撰写了这样一本书,以帮助自己和学生学习Perl,同样也帮助读者学习它。随着Perl的不断发展,本书也在不断修订。在这本最新出版的第4版中,新增了一章介绍基于MySQL的Perl与DB组件的内容,修订了Perl对象相关章节,并在其他章节中添加了很多示例和解释,以便让它们显得更为新颖和有趣。本书附录部分也经过了修订,包含了有关BioPerl和mod_perl的内容。在本书中,读者将不仅学会Perl,还将节省大量时间。至少笔者的很多学生和读者都这么说。究竟本书怎么样,读者您说了算。

内容概要

  《PERL实例精解(原书第4版)》不仅是一本初学者指导,而且是关于Perl的完整指南,它包含了Perl应用的很多方面,从正则表达式处理到格式化报表,再到进程间通信等。由于Perl原本是为UNIX编写的,因此具有一些UNIX知识会大大加快学习Perl的进程。任何读、写或只是维护Perl程序的人都能极大地从《PERL实例精解(原书第4版)》受益。开发人员可以通过借鉴《PERL实例精解(原书第4版)》的示例来编写良好的Perl程序,甚至可以在实际工作中直接使用《PERL实例精解(原书第4版)》中的示例程序,从而大大节省开发人员的时间,并且能有效地避免编程错误。《PERL实例精解(原书第4版)》内容简洁、示例丰富,非常适合于Perl语言初学者阅读,对于Perl程序员,也有很大的参考价值。

书籍目录

对Ellie Quigley 著作的赞誉译者序前言致谢第1章 实用摘要和报表语言1.1 什么是Perl1.2 什么是解释语言1.3 Perl 的用户1.3.1 Perl 的版本1.3.2 什么是Perl 61.4 如何获得Perl1.5 什么是CPAN1.6 Perl 文档1.6.1 Perl 的man 页面1.6.2 HTML 文档1.7 读者应当学到的知识1.8 下章简介第2章 Perl 快速入门2.1 快速入门和速查手册2.1.1 给程序员的提示2.1.2 给非程序员的提示2.1.3 Perl 语法和结构2.2 本章小结2.3 下章简介第3章 Perl 脚本3.1 创建脚本3.2 脚本3.2.1 启动3.2.2 选择文本编辑器3.2.3 为Perl 脚本取名3.2.4 语句、空白和换行3.2.5 注释3.2.6 Perl 语句3.2.7 使用Perl 内建函数3.2.8 执行脚本3.2.9 脚本实例3.2.10 可能出现的错误3.3 从命令行使用Perl3.3.1 -e 开关3.3.2 -n 开关3.3.3 -c 开关3.4 读者应当学到的知识3.5 下章简介第4章 获得打印句柄4.1 文件句柄4.2 字(Word)4.3 print 函数4.3.1 引号4.3.2 实量(常量)4.3.3 打印实量4.3.4 warning 编译指示符和-w 开关4.3.5 diagnostics 编译指示符4.3.6 strict 编译指示符4.4 printf 函数4.4.1 sprintf 函数4.4.2 无引号打印:here 文档4.5 读者应当学到的知识4.6 下章简介第5章 变量5.1 Perl 变量简介5.1.1 类型5.1.2 作用域和包5.1.3 命名规范5.1.4 赋值语句5.1.5 引号规范5.2 标量、数组和散列5.2.1 标量型变量5.2.2 数组5.2.3 散列5.2.4 复杂数据结构5.3 从STD N 读取输入5.3.1 把输入内容赋值给标量型变量5.3.2 chop 与chomp 函数5.3.3 read 函数5.3.4 getc 函数5.3.5 将输入内容赋予数组5.3.6 将输入内容赋予散列5.4 数组函数5.4.1 chop 和chomp 函数(用于列表)5.4.2 exists 函数5.4.3 delete 函数5.4.4 grep 函数5.4.5 join 函数5.4.6 map 函数5.4.7 pack 和unpack 函数5.4.8 pop 函数5.4.9 push 函数5.4.10 shift 函数5.4.11 splice 函数5.4.12 split 函数5.4.13 sort 函数5.4.14 reverse 函数5.4.15 unshift 函数5.5 散列(关联数组)函数5.5.1 keys 函数5.5.2 values 函数5.5.3 each 函数5.5.4 对散列进行排序5.5.5 delete 函数5.5.6 exists 函数5.6 有关散列的更多内容5.6.1 从文件载入散列5.6.2 特殊散列变量5.6.3 上下文(Context)5.7 读者应当学到的知识5.8 下章简介第6章 运算符6.1 关于Perl 运算符6.2 混合数据类型6.3 优先级和结合性6.3.1 赋值运算符6.3.2 关系运算符6.3.3 相等性运算符6.3.4 逻辑运算符(短路运算符)6.3.5 逻辑字运算符6.3.6 算术运算符6.3.7 自动递增与自动递减运算符6.3.8 位逻辑运算符6.3.9 条件运算符6.3.10 范围运算符6.3.11 特殊字符串运算符和函数6.3.12 算术函数6.4 读者应当学到的知识6.5 下章简介第7章 条件7.1 控制结构、块与复合语句7.2 循环7.2.1 while 循环7.2.2 until 循环7.2.3 for 循环7.2.4 foreach 循环7.2.5 循环控制7.2.6 switch 语句7.3 读者应当学到的知识7.4 下章简介第8章 正则表达式——模式匹配8.1 什么是正则表达式8.2 表达式修饰符与简单语句8.2.1 条件修饰符8.2.2 DATA 文件句柄8.2.3 循环修饰符8.3 正则表达式运算符8.3.1 m 运算符与匹配8.3.2 s 运算符与替换8.3.3 模式绑定运算符8.4 读者应当学到的知识8.5 下章简介第9章 正则表达式元字符9.1 正则表达式元字符9.1.1 表示单个字符的元字符9.1.2 空白元字符9.1.3 重复模式匹配元字符9.1.4 tr 或y 函数9.2 Unicode9.3 读者应当学到的知识9.4 下章简介第10章 获得文件句柄10.1 用户定义文件句柄10.1.1 打开文件:open 函数10.1.2 打开文件读取10.1.3 打开文件写入10.1.4 Win32 二进制文件10.1.5 打开文件追加10.1.6 select 函数10.1.7 使用flock 为文件加锁10.1.8 seek 和tell 函数10.1.9 打开文件读写10.1.10 打开管道10.2 参数传递10.2.1 ARGV 数组10.2.2 ARGV 与Null 文件句柄10.2.3 eof 函数10.2.4 -i 开关:原位编辑文件10.3 文件测试10.4 读者应当学到的知识10.5 下章简介第11章 子例程与函数11.1 子例程/ 函数11.2 参数传递11.2.1 原型11.2.2 返回值11.2.3 上下文和子例程11.3 按引用调用11.3.1 符号引用- typeglob11.3.2 硬引用-指针11.3.3 自动加载11.3.4 BEG N 和END 子例程(开始与结束)11.3.5 subs 函数11.4 读者应当学到的知识11.5 下章简介第12章 模块化、打包并发送到库12.1 包和模块12.1.1 引言12.1.2 一个类比12.1.3 定义12.1.4 符号表12.2 标准Perl 库12.2.1 @ NC 数组12.2.2 包和.pl 文件12.2.3 模块和.pm 文件12.2.4 导出和导入12.2.5 如何“use”来自标准Perl 库的模块12.2.6 使用Perl 创建自己的模块12.3 来自CPAN 的模块12.4 读者应当学到的知识12.5 下章简介第13章 这项工作需要引用吗13.1 什么是引用,什么是指针13.1.1 符号引用和硬引用13.1.2 硬引用,指针13.1.3 引用和匿名变量13.1.4 嵌套数据结构13.1.5 引用和子例程13.1.6 文件句柄引用13.1.7 ref 函数13.2 读者应当学到的知识13.3 下章简介第14章 面向对象的Perl14.1 OOP 范例14.1.1 回顾包与模块14.1.2 一些面向对象的专用术语14.2 类、对象和方法14.2.1 现实世界14.2.2 步骤14.2.3 类和私有性14.2.4 对象14.2.5 bless 函数14.2.6 方法14.2.7 面向对象的模块样式14.2.8 多态性和动态绑定14.2.9 析构函数和垃圾收集14.3 匿名子例程、闭包和私有性14.3.1 什么是闭包14.3.2 闭包和对象14.4 继承14.4.1 @ SA 数组和调用方法14.4.2 $AUTOLOAD、sub AUTOLOAD和UN VERSAL14.4.3 派生类14.4.4 多重继承14.4.5 重写父类方法14.5 公共用户接口:文档类14.5.1 pod 文件14.5.2 pod 命令14.5.3 如何使用pod 解释器14.5.4 将pod 文档转译为文本14.5.5 将pod 文档转译为HTML14.6 使用Perl 库中的对象14.6.1 另眼看标准Perl 库14.6.2 一个来自标准Perl 库的面向对象模块14.6.3 使用标准Perl 库中的模块14.7 读者应当学到的内容14.8 下章简介第15章 神奇的Tie 和DBS15.1 连接变量与类15.1.1 tie 函数15.1.2 预定义方法15.1.3 连接标量15.1.4 连接数组15.1.5 连接散列15.2 DBM 文件15.2.1 创建并赋值DBM 文件15.2.2 从DBM 文件中检索数据15.2.3 从DBM 文件删除项15.3 读者应当学到的知识15.4 下章简介第16章 CG 和Perl:超级活力双雄16.1 静态和动态Web 页面16.2 工作原理16.3 使用HTML 创建Web 页面16.4 HTML 和CG 如何协作16.4.1 简单CG 脚本16.4.2 错误日志文件16.5 控制信息出入CG 脚本16.6 CG 和表单16.6.1 表单输入类型16.6.2 创建HTML 表单16.6.3 GET 方法16.6.4 处理编码数据16.6.5 总结16.6.6 POST 方法16.6.7 处理电子邮件16.7 CG .pm 模块16.7.1 简介16.7.2 优点16.7.3 使用CG .pm 编程的两种形式16.7.4 重要警示16.7.5 HTML 表单方法16.7.6 CG .pm 如何处理表单16.7.7 CG .pm 表单元素16.7.8 生成表单输入字段的方法16.7.9 错误处理16.7.10 HTTP 首部方法第17章 当Perl 遇见MySQL:完美的连接17.1 简介17.2 什么是关系型数据库17.2.1 客户端/ 服务器型数据库17.2.2 关系型数据库的组成部分17.2.3 通过SQL(结构化查询语言)访问数据库17.3 MySQL 入门17.3.1 为何选用MySQL17.3.2 安装MySQL17.3.3 连接MySQL17.3.4 图形化用户界面17.3.5 寻找数据库17.3.6 基本命令入门17.4 什么是Perl DB17.4.1 安装DB17.4.2 DB 类方法17.4.3 如何使用DB17.4.4 连接和断开数据库17.4.5 disconnect() 方法17.4.6 准备语句句柄并获取结果17.4.7 处理引号17.4.8 获取错误消息17.5 不返回数据的语句17.6 事务17.7 使用CG 和DB 选择并显示记录项17.8 还有哪些内容17.9 读者应当学到的知识17.10 下章简介第18章 与系统交互18.1 系统调用18.1.1 目录和文件18.1.2 目录和文件属性18.1.3 查找目录和文件18.1.4 创建目录——mkdir 函数18.1.5 删除目录——rmdir 函数18.1.6 更改目录——chdir 函数18.1.7 通过目录文件句柄访问目录18.1.8 权限和所有权18.1.9 硬链接和软链接18.1.10 更改文件名18.1.11 更改访问与修改时间18.1.12 文件统计量18.1.13 底层 /O 文件18.1.14 压缩和解压缩数据18.2 进程18.2.1 UN X 进程18.2.2 Win32 进程18.2.3 环境(UN X 和Windows)18.2.4 进程和文件句柄18.2.5 进程优先级和Nice 值18.2.6 口令信息18.2.7 时间和进程18.2.8 UN X 进程创建18.2.9 Win32 进程创建18.3 与操作系统交互的其他途径18.3.1 syscall 函数和h2ph 脚本18.3.2 命令替换——反引号18.3.3 Shell.pm 模块18.3.4 system 函数18.3.5 here 文档18.3.6 Globbing ( 文件名扩展和通配符)18.4 错误处理18.4.1 die 函数18.4.2 warn 函数18.4.3 eval 函数18.5 信号18.6 读者应当学到的知识18.7 下章简介第19章 借助形象行编写报表19.1 模板19.1.1 定义模板的步骤19.1.2 更改文件句柄19.1.3 页眉格式19.1.4 select 函数19.1.5 多行字段19.1.6 填充字段19.1.7 动态报表编写19.2 读者应当学到的知识19.3 下章简介第20章 通过网络发送20.1 网络与Perl20.2 客户端/ 服务器模型20.3 网络协议(TCP/ P)20.3.1 以太网协议(硬件)20.3.2 Internet 协议(IP)20.3.3 传输控制协议(TCP)20.3.4 用户数据报协议(UDP)20.4 网络寻址20.4.1 以太网地址20.4.2 P 地址20.4.3 端口号20.4.4 Perl 协议函数20.4.5 Perl 的服务器函数20.4.6 Perl 的主机信息函数20.5 套接字20.5.1 套接字的类型20.5.2 套接字域20.5.3 创建套接字20.5.4 绑定地址和套接字名20.5.5 创建套接字队列20.5.6 等待客户端请求20.5.7 建立套接字连接20.5.8 关闭套接字20.6 客户端/ 服务器程序20.6.1 同一台计算机上面向连接的套接字20.6.2 远程计算机( nternet 客户端和服务器)上面向连接的套接字20.7 Socket.pm 模块20.8 读者应当学到的知识附录A Perl 内建函数、编译指示、模块和调试器附录B SQL 语言入门附录C Perl 和生物学附录D 强悍与速度:CG和mod_Perl

章节摘录

  第1章 实用摘要和报表语言  1.1 什么是Perl  “懒惰、性急和傲慢。伟大的Perl程序员拥有这些优点。”——Larry Wall  Perl是一种多用途的开源(免费软件(解释型语言,由称为Perl Porters的核心开发团队维护和改进。它主要用作脚本语言,并且运行在众多平台上。尽管Perl最初是为UNIX操作系统设计的,但是它以其可移植性以及现在与大多数操作系统捆绑在一起而著名。这些操作系统包括RedHatLinux、Solaris、FreeBSD、Macintosh等。由于Perl的通用性,它通常称为程序设计语言的“瑞士军刀”。  Larry Wall编写Perl语言来管理散布在网络中的日志文件和报表。依据Wikipedia.or9上面的说法:“Perl最初命名为‘Pearl’,它出自于Gospel of Matthew(《圣经马太福音》(中的‘Parableofthe Pearl,(珍珠的寓言(。”该寓言的简要内容如下:一位商人寻找珍珠,他找到一颗如此贵重、漂亮的珍珠,以至于他情愿倾其所有来购买它。最后,他甚至比以往更富有。无论你怎样解释这则寓言,它都具有非常积极的寓意。  但是在1987年推出其官方发布版时,删去了“Pearl”中的字母“a”,白此将该语言称为“Perl”,后来又把它称为实用摘要和报表语言(Practical Extraction and Report Language(,还有一些人把它称为病态折衷垃圾列表器(Pathologically Eclectic Rubbish List印(。你很快将会看到,Perl确实远远胜过实用报表语言或折衷垃圾列表器。Perl使编程简单、灵活和快速,因此使用它的人都会喜欢它。其用户从经验丰富的程序员一直到只具有很少计算机知识的初学者,而且用户的数量也在飞速增长。  Perl传承自UNIX。Perl脚本在功能上类似于UNIX awk、sed、shell脚本和C程序。shell脚本主要由UNIX命令构成,Perl脚本则不然。sed和awk用于编辑和报告文件,但是Perl无需执行文件即可工作。c没有shell、sed和awk的任何模式匹配和通配元字符,而Perl却有扩展字符集。Perl最初用于操作文件中的文本、从文件中提取数据和编写报表,但经过不断的发展,它现在可以操作进程、执行网络任务、处理web页面、与数据库通信,以及分析科学数据。Perl确实是程序设计语言的“瑞士军刀”,任何人都可以使用它。

编辑推荐

  《PERL实例精解(原书第4版)》提供了学习Perl最容易,最实用的方式。传奇般的硅谷编程讲师Ellie Quigley彻底更新了她的杰作,提供今天的Perl用户所需的大多数技能和信息——包括全新的MySQL数据库程序设计和旨在使经验丰富的用户更上一个台阶的Perl QuickStart。  Quigley通过有针对性的课堂测试代码示例、详细的逐行解释和真实的程序输出来阐释每种技术。《PERL实例精解(原书第4版)》结构清晰、通俗易懂。它可以帮助你学会从编写第一个Perl脚本开始,一直到开发数据库驱动的应用程序。它是一本你必备的Perl图书!  本版的新增内容:  Perl程序设计入门:用仅仅20页的篇幅即可使Perl程序员新手编写Perl脚本。  结合使用Perl DBI与MySQL数据库的全新章节,并附带简单的SQL初级读物,帮你快速编写数据库应用程序。  从生物学(生物信息学)角度介绍Perl,还介绍了Apache服务器中嵌入的Perl解释器mod_perl,它允许你创建快速、动态的内容;管理Apache服务器;验证用户身份等。  完全更新的内容:  包括许多新的、完全重写的代码示例。  包括全面修订了CGI介绍,以利用Perl构建动态Web站点。  涵盖了现代的Perl 5.8的概念和原理,并为Perl 6打下了极好的基础。  三万多名系统管理员、高级用户和开发人员使用了《PERL实例精解(原书第4版)》的以前版本而成为专家级的Perl程序员。通过学习《PERL实例精解(原书第4版)》,你也可以做到这一点,即使你对Perl一无所知。在成为一名专家之后,你还将频繁地翻阅《PERL实例精解(原书第4版)》,因为它是可靠答案、解决方案和代码的最佳来源。

图书封面

图书标签Tags

评论、评分、阅读与下载


    PERL实例精解 PDF格式下载


用户评论 (总计0条)

 
 

 

250万本中文图书简介、评论、评分,PDF格式免费下载。 第一图书网 手机版

京ICP备13047387号-7