首页>参考读物>计算机科学与技术>软件与程序设计

Perl高级编程
作者 : (英)Peter Wainwright等
译者 : 胡季红 王璐珍 丁滟 等
出版日期 : 2002-06-01
ISBN : 7-111-10140-5
定价 : 108.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 1076
开本 : 16开
原书名 : Professional Perl Programming
原出版社:
属性分类: 店面
包含CD :
绝版 : 已绝版
图书简介

本书深入浅出地介绍了利用Perl语言进行编程的各方面知识。首先,本书介绍了大多数高级程序设计语言中都涉及的数据类型、特殊变量、操作符、表达式、语句和子例程等基本概念。然后,本书逐章阐述了文件与目录处理、终端输入与输出、程序调试方法等。最后,本书还描述了面向对象程序设计方法、Perl解释器、进程、线程、基本的网络编程方法、Perl语言的可移植性以及国际化等高级话题。
  本书思路清晰,逻辑性强,方法实用性强,是进入Perl编程世界的理想向导和指南。无论是Perl入门者,还是有经验的Perl程序员,都可得益于本书提供的丰富的Perl编程知识与编程技巧。

图书前言

灵活的、可移植的、多用途的并且可以免费获得的Perl,已经从一种shell脚本的简单替代物发展成为一种功能强大的面向对象的通用语言。随着每次新版本的发布,Perl都添加了新的特性,因此这种非常流行、具有丰富特性的语言越来越普及。Perl的一种独特的功能强大的特性是其模块库的实现,该实现使Perl成为了一种真正意义上的可扩充语言。
  本书思路清晰,结构逻辑性强,方法实用,是进入Perl编程世界的理想向导和指南。
  本书面向的读者
  本书的覆盖面和深度使其成为一本对Perl的入门者和有经验的Perl程序员都极具帮助的图书。本书为新入门者提供了内容广泛的指导,它从这种语言的基础开始,并且不需要任何Perl以前的知识。本书提供了对这种语言从shell脚本发展到面向对象过程中很多方面的透彻理解。但是因为指导包含了很多细节内容,所以即使有经验的Perl程序员也会发现许多值得深入学习的地方。
  本书是由经验丰富的程序员所写的,他们每个人都总结了自己使用Perl的经验,提供了每个人的专门知识和见解。因此本书的特点是专业的开发人员在分享其艰辛获得的知识。采用Wrox惯例,本书不仅给出了原始的(并且免费的)由这种语言提供的文档,而且对所涉及到的每一个主题都给出了一种重实效的方法并给出了实例。
  对于Perl开发者而言,无论是否了解Perl,都能从本书中发现许多新的内容。
  本书的覆盖范围
  这里对本书的内容做一个简略的介绍。
  第1章先对Perl做概括的介绍。我们首先看看如何在UNIX、Windows和Macintosh系统上安装Perl的二进制发布版本和源代码发布版本,然后介绍安装Perl模块和第三方程序库,最后概述Perl命令行选项和环境变量。
  在深入研究Perl的细节之前,第2章讲述基础,简要介绍这种语言的一些基本概念:数据类型、特殊变量、操作符和表达式等等。这样可以使Perl的人门者在我们更详细地研究这些概念之前能够熟悉它们。
  在第3章中,我们分析Perl中首要的和最基本的数据类型:标量。我们首先了解了标量的三种主要类型--整数、浮点数和字符串以及它们之间互相进行转换的方式。接下来,我们分析能被用于处理字符串的函数。最后我们讨论用于字符串转换的低级函数。
  使用标量需要操作符。第4章介绍和回顾Perl中所有操作符的用法,并且介绍优先级和结合性的相关概念以及在Perl中应该如何使用它们。对于更高级的读者,我们还介绍了如何禁用和覆盖操作符。
  第5章介绍更多的Perl数据类型,主要是数组、hash和typeglob。这一章还介绍了两类特殊的标量:引用和未定义值。我们将看到如何操作这些数据类型以及如何用它们来创建复杂的数据结构,例如多维数组和hash的hash。这一章的最后一节讲述常量,包括如何声明标量常量、列表常量和hash常量。
  第6章建立在前面几章的基础上,介绍Perl的编程结构。首先是表达式和语句,然后是条件语句,最后是循环和循环结构。
  子例程是代码的可重用块,它们使脚本更容易维护和被改写。第7章示范如何声明参数和向子例程传递参数。这一章还介绍了如何用原型来指明子例程应该采用何种类型的参数和子例程如何返回值。这一章围绕子例程的属性做更进一步的讨论,还介绍了如何用这些属性来修改子例程的行为。
  对理解变量和代码如何相互作用而言,作用域和可见性这两个概念是必不可少的。因为Perl既支持"包作用域"(也叫做"动态作用域"),也支匙"词法作用域",所以它的作用域规则看上去很复杂。第8章详细地解释和对比这两种不同的作用域。这一章还介绍了符号表和名字空间的相关概念。
  这种语言的一个功能强大的特性是Perl模块库,它使Perl成为真正的可扩充语言。第9章举例说明使用模块的几种不同方式,并解释改变Perl编译器行为的语用模块。我们还讲述了两种特殊的变量:@INC和% INC以及它们如何与模块使用发生联系。另外,我们展示如何检查模块的存在及其可用性,还给出一些方法,用来延迟模块的装入和编译,除非它们真正被使用或者直到它们真正被使用。
  从外部了解了模块之后,第10章开始介绍如何从内部来理解它们--深入它们的实现。我们首先处理基本的模块结构和特殊的程序块BEGIN、END及友元。接着我们介绍自动加载并讨论各种不同的自动加载技术和策略,包括子例程的定义。然后,我们详细讨论在不同包之间的导人和导出子例程。在最后一节,我们讲述如何用hZxs工具创建可安装的模块包。
  第11章的主题是 Perl的正则表达式引擎,这个特性是使用这种语言的一个最常见原因。我们先介绍插值,它与正则表达式共用一些相同的概念,而且可以被用来单独地或者与正则表达式结合在一起产生作用。介绍完插值以后,这一章给出一个详尽的关于正则表达式的指导,包括从基本概念到高级技术的内容,我们将讨论正则表达式模式的定义和结构,以及它们的赋值。
  第12章介绍另一种特有的数据类型:文件句柄。我们将学习创建文件句桶的几种方法,并学习如何读写它们,然后讨论锁定文件、随机存取和缺省输出文件句柄。接下来我们学习在系统级上处理文件句柄。在系统级上我们可以更高程度地控制这些文件句柄,但是要担负更大的责任。
  学习完文件句柄以后,第13章讲述文件名,包括文件权限和所有权。我们先介绍一元文件测试操作符,并学习如何改变文件属性及通过文件系统在文件上执行操作。然后,我们看看Perl的glob操作符以及临时文件的创建与处理。该章的最后一部分集中讲述目录,介绍目录的读取、创建和删除。
  第14章讲述命令行参数的语法分析和处理。首先我们详细介绍一个特殊的数组@ARGV,当启动一个Perl程序时,这个数组包含传递给这个程序的参数。接下来,这一章将阐述命令行处理模块Getopt::Std和Geopt::Inng。这一章的第二部分示范如何创建简单的Perl shell以及如何把这些底层Shell集成到我们自己的Perl脚本中。
  第15章讨论程序设计中的终端输入和输出。我们介绍几种输出到终端的不同方法,包括使用Term::ReadKey模块和Term::ReadLine模块。接下来,这一章将介绍如何输出到屏幕上,并介绍高级终端模块。最后,介绍由模块POSIX::Trmios提供的终端低级接口。
  在第16章中,我们介绍警告和错误,包括警告的生成、发现错误和如何处理它们。我们学习如何解释来自系统调用的错误结果。有时我们需要使非致命的错误变成致命的,Fatal模块向我们展示如何做到这一点。这一章还介绍了Carp模块以及如何使用底层系统和Perl函数记录错误。
  第17章讨论调试方法。这一章详细展示如何使用Perl的调试器,并介绍了许多调试模块,这些模块都是Perl标准库的一部分。然后,这一章展示如何实现自动测试,接下来解释 profiling--为应用程序收集计时统计信息的过程。
  第18章分为主要的三节,第一节阐述Perl提供的用于处理文本的各种模块。这一节介绍的模块有用于语法分析单词与短语的 Text:: PareeWords和用于格式化段落的 Text::Wrap。第二节介绍 Perl的简易老式文档(Plain Old DOcurnentalion,POD)。最后一节展示如何使用被称做格式化的特殊的布局定义生成格式化文本。
  第19章的主题是面向对象的程序设计。在深人讨论使用Perl的对象进行程序设计之前,这一章首先简要介绍对象的概念。这一章向我们展示如何编写对象类并详细介绍了继承和派生类,还介绍了保持数据私有、销毁对象以及操作符重载。最后一节讨论Perl的一个特殊功能部件:捆绑对象和被捆绑对象。
  第对章结束对Perl的泛泛之谈,带领我们深入到Perl的解释器中。这一章讲述Perl是如何被构建的、Config.pm模块、Perl使用的内部数据类型和Perl编译器。在后面一节,我们研究O模块和B::模块家族的工作原理。
  在第对章中,我们看看Perl和其他语言的集成。首先我们看看如何在Perl中使用C,在接口XS上可知道细节。接着我们学习如何访问一个动态库中的代码,如果这个动态库是一个UNIX共享对象或者一个Windows动态链接库。然后我们看看如何在C中使用Perl。最后,我们看看Java-Perl Lingo(JPL)以及在一个COM环境中使用Perl。
  第22章的主题是创建进程和管理进程。首先是对信号和信号处理的介绍,接着我们展示如何在两个进程之间操作和通信,以及如何共享数据,最后我们看看Perl的一个比较新的特性:线程。
  第对章先介绍连网的概念,然后介绍套接字和基本的网络编程。接下来介绍TCP连网和UDP连网,还有UNIX Domain套接字。这一章还讲述了套接字配置选项、多路复用服务器、轮询、分叉和实现一个线程服务器。在最后一节,我们看看如何获取有关网络主机、网络、协议和服务的信息。

  Perl是一种高度可移植的语言。它可以在所有的大型机和大多数小型机的操作系统上运行。但是虽然大多数Perl代码都是可移植的,我们仍然需要注意平台之间的不同之处和易犯的错误。如果我们准备编写真正可移植的Perl代码,那么我们需要牢牢记住第24章中强调的要点。
  第25章讲述 Perl对Unicode的支持。这一章首先介绍Unicede的基本概念,接着讨论Perl的Unicode对正则表达式的支持,然后我们看看双向文本是如何被翻译的。最后这一章示范如何实现Perl对Unicde的支持。
  前面一章研究Unicode,接下来的一章讨论地区和国际化方案。第26章解释Perl对不同语言的支持和如何使用这种支持。然后这一章介绍许多和语言有关的模块以及如何设计多语言网页。
  这本书的最后是一些附录,都是有用的参考资料,包括Perl的命令行选项、特殊变量、函数和标准库模块。
  使用本书需要的基础知识
  虽然许多平台都支持Perl,但是最广泛的支持来自于UNN(还有Linux和BSD)以及微软的 Windows 9x、2000和NT。这本书的一些章节中包含了特定平台的例子,不会同时被应用到UNIX和Window上。所有例子使用的都是 Perl 5.6,虽然可以使用 Perl 5.53以后的任意一个版本,但是安装 Pens.6版本更可取。在整本书的不同地方,我们将需要分别安装 Perl的不同模块,所有这些模块都可以从CPAN上获得。
  虽然不做要求,但是在处理某些主题时,知道一些UNN或者llnux的知识会有帮助。
  源代码
  我们已尽可能地提供了能最有效说明文章中所讨论概念的示范程序和代码片段,书中的全部源代码都可以从下面这个网站中下载:
  http://www.wrox.com
  按照GNU公共版权(GNU Public License)的条款,这些代码是可以获得的。虽然所有需要的代码基本上都在书中列了出来,我们仍然建议读者下载一份拷贝,这样可以节省大量的录入时间。


作者简介

(英)Peter Wainwright等:暂无简介

译者简介

胡季红 王璐珍 丁滟 等:暂无简介

译者序

Perl是Pratical Extraction and Report Language的缩写,最初是由Larry Wall设计的。随着网络技术的迅猛发展,Perl这种可用来处理文本并具有脚本语言特点、功能十分强大的高级程序设计语言成为了最常用的网络编程语言之一。
  本书深入浅出地描述了利用Perl语言进行编程的各个方面。首先,本书介绍了大多数高级程序设计语言中都涉及的数据类型、特殊变量、操作符、表达式、语句和子例程等基本概念。然后,本书说明了文件与目录处理、终端输入与输出、程序调试方法等。最后,本书还描述了面向对象程序设计方法、Perl解释器、创建与管理进程以及进程间通信、线程、基本的网络编程方法、Perl语言的可移植性以及国际化等高级话题。
  全书既有广泛的覆盖面,表现在对Perl编程的各个方面都进行了介绍;又有非常深入的关于专业Perl编程知识与编程技巧的讨论,表现在本书不仅仅限于介绍基本的Perl编程,而且深入描述了Perl程序调试、Perl解释器等非常高级的Perl程序设计方法。因此,本书不仅适合于Perl入门者,而且是有经验的Perl程序员必备的一本Perl编程参考书。
  本书是由经验丰富的程序员编写的,他们每个人都在自己多年从事Perl编程经验的基础上;提炼出各自的专业知识和见解。可以说,本书是专业开发人员为分享其宝贵的编程经验而推出的力作。本书采用Wrox惯例,不仅给出了原始的(并且免费的)由这种语言提供的文档,而且对所涉及到的每一个主题都给出了一种注重实效的基于例子的方法。
  本书由胡季红、王略珍、丁湖、汪任伟、畅斌、易会战、刘明、郑笛、王俊、周妹和李化进行翻译,全书最后由肖国尊统稿,辰卓工作室全体人员参加了本书的翻译、校对、录入和排版工作。在翻译过程中,我们查阅了大量资料,力求准确、详实而全面地表现出原著者的初衷。但由于水平与时间有限,错误之处在所难免,望各界同仁批评指正。
  2001年11月

图书目录

第1章 概览
1.l 简介
1.1.l 关键的特性
1.1.2 支持平台
l.l.3 Perl的历史和版本
l. 1.4 基础信息
1. 2 构建和安装Perl
1.2. 1 安装预构建的Perl发布版本
1.2. 2 构建Perl源代码
1.2. 3 构建和安装模块
1.2.4 用CPAN模块安装模块
1.3 运行Perl
1.3.l 启动Perl应用程序
1.3.2 命令行
1.3.3 命令行语法
1.3.4 Perl环境
1.4 小结
第2章 基本概念
2.l 值和变量
2.2 空白区域
2.3 数据类型
2.4 特殊变量
2.5 插值
2.6 上下文
2.6.l 标量上下文和列表上下文
2. 6.2 空白上下文
2.7 操作符
2.8 程序块
2.9 控制结构
2.10 循环修饰符
2.11 子例程
2.12 函数
2.13 作用域
第3章 标量
3.1 值转换和高速缓存
3.2 数字
3.2. 1 整数
3.2.2 浮点数
3.2.3 use integer编译指示
3.2.4 数学函数
3.3 字符串
3.3.1 引号和引用
3.3.2 here文档
3.3.3 探词字符串和版本号
3.3.4 把字符串转换成数字
3.3.5 把字符串转换成列表和hash
3. 3.6 操作字符串的函数
3.3.7 字符串格式化
3.4 小结
第4章 操作符
4.l 操作符与函数比较
4.2 操作符类型和类别
4.2. 1 赋值操作符
4.2.2 算术操作符
4.2. 3 移位操作符
4.2.4 字符串操作符和列表操作符
4.2.5 逻辑操作符
4.2.6 位操作符
4.2.7 组合赋值操作符
4.2.8 递增操作符和递减操作符
4. 2.9 比较操作符
4.2.10 正则表达式绑定操作符
4.2.11 逗号操作符和关系操作符
4.2.12 引用操作符和间接引用操作符
4. 2.13 箭头操作符
4.2.14 范围操作符
4. 2.15 三元操作符
4.3 优先组和结合性
4. 4 禁用函数和操作符
4. 5 覆盖操作符
4. 6 小结
第5章 标量之外的更多数据类型
5.l 列表和数组
5. 1.1 操作数组
5.1.2 把列表和数组转换为标量
5. 2 hash
5.2.l 操作 hash
5.2.2 把列表和数组转换为hash
5.2.3 把hash转换为标量
5. 2.4 把hash转换为数组
5.2.5 特殊的hash变量% ENV
5.3 引用
5. 4 复杂的数据结构
5.4.l 嵌套带来的问题--列表被展开
5.4.2 列表的列表和多维数组
5.4.3 hash的hash和其他复杂的数据结构
5. 4.4 向复杂的数据结构添加元素和修改复杂的数据结构
5.4.5 编程实现复杂的数据结构
5.4.6 遍历复杂的数据结构
5.5 typeglob
5.5. 1 定义typeglob
5.5.2 操作typeglob
5.5.3 访问typeglob
5.6 未定义值
5.6.l 存在测试
5.6.2 使用未定义值
5.6.3 把undef作为一个函数使用
5.7 常量
5.7.l 使用constant编译指示声明标量常量
5. 7.2 声明列表常量和hash常量
5.7.3 常量引用
5.7.4 列举和检查常量的存在
5. 8 小结
第6章 结构、流和控制
6.l 表达式、语句和程序块
6.1.l 声明
6.l. 2 表达式和简单语句
6.1.3 程序块和复合语句
6.2 条件语句
6.2. 1 真值的概念
6.2.2 if、else和elsif
6.2.3 unless
6.2. 4 使用逻辑操作符写条件
6.2. 5 三元操作符
6.2.6 开关和多分支条件
6.2.7 从多分支条件中返回值
6.3 循环和循环过程
6.3.l 使用for编写C样式的循环
6.3.2 使用foreach写出更好的循环
6.3.3 条件循环--while、until和do
6.3.4 控制循环执行
6.3.5 goto语句
6.3.6 map和grep
6.4 小结
第7章 子例程
7.1 声明子例程和调用子例程
7.1.l 匿名子例程和子例程引用
7.1.2 严格子例程和use strict subs编译指示
7.l.3 预声明子倒程
7. 1.4 子例程栈
7.1.5 检查子例程和使Perl自动定义子例程
7.2 传递参数
7.2.l 传递列表和hash
7.2.2 把标量子例程转换为列表处理程序
7.2.3 直接把@_传递给子例程
7.2.4 命名参数
7.3 原型
7.3.l 定义参数的个数和它们的作用域
7.3.2 使用原型设计代码引用
7.3.3 把子例程作为标量操作符
7.3.4 请求变量而不是值
7. 3. 5 可选参数
7.3.6 禁用原型
7.4 从子倒程中返回值
7. 4.l 返回未定又值
7.4.2 对调用上下文的检测和响应
7.4. 3 闭包
7.4.4 可赋值的子例程
7.5 属性列表
7.5.l 定义于例程属性
7.5.2 访问属性
7.5.3 特殊属性
7.5. 4 包属性
7.6 小结
第8章 作用域和可见性
8.l 包变量
8.1.l 定义包变量
8.1.2 使用"严格的"变量
8.1.3 声明全局包变量
8.l.4 使用use vars声明全局包变量
8.1.5 使用our词法声明全局包变量
8.1.6 在Perl中自动局部化
8.1.7 使用local局部化包变量
8.2 词法变量
8.2. 1 声明词法变量
8. 2. 2 在词法变量作用域外使用它们
8.3 符号表
8.3.l main包
8.3. 2 typeglob和main包
8.3.3 符号表层次
8.3.4 直接操作符号表
8.3.5 访问符号表
8.4 小结
第9章 使用模块
9. l 模块和包
9.2 使用do、require和use装载代码
9.2. 1 导入列表
9.2.2 禁止缺省导入
9. 2. 3 使用no禁用特性
9.2.4 测试模块版本和Perl的版本
9.3 语用模块
9.3.l 语用模块的工作原理
9.3.2 语用模块的作用域
9.4 特殊hash变量% INC
9.5 特殊数组变量@ INC
9.5.l 直接修改@ INC
9.5.2 使用lib编译指示修改@ INC
9.6 定位与脚本相关的库
9.7 检查一个模块的可用性
9. 8 找出被安装的模块
9.9 将模块的载人推迟至使用时
9.10 小结
第10章 模块与包内幕
10.1 BEGIN块、END块和其他程序块
10.1.1 BEGN块
10.l.2 END块
10.1.3 CHECK和 INIT
10.2 操作包
10.2. 1 删除包
10.2.2 禁止包变量
10.3 按程序方式查找包名
10.4 自动加载
10.4. 1 自动加载于例程
10.4.2 自行定义而不是自动加载子例程
10.4.3 自动加载模块
10.5 导入与导出
10.5.l 导入机制
10.5.2 导出
10.6 创建可安装的模块
10.6.1 编写良好的模块
10.6.2 创建一个工作目录
10.6.3 建立可安装的包
10.6.4 添加一个测试脚本
10.6.5 将模块上载到CPAN
10.7 小结
第11章 正则表达式
11.l 字符串插值
11.1.1 Perl的插值语法
11.1.2 插入元字符和字符代码
11.1.3 对变量进行插值
11.1.4 插值代码
11.1.5 插值上下文
11.1.6 正则表达式中的插值
11.1.7 在字符串变量中插人文本
11.1.8 保护字符串防止被插值
11.2 正则表达式
11.2.l 正则表达式出现在什么位置
11.2.2 正则表达式分隔符
11.2.3 正则表达式的元素
11.2.4 更高级的模式
11.2. 5 模式匹配修饰符
11.2.6 正则表达式与通配符
11.2.7 元字符
11.2.8 提取匹配的文本
11.2. 9 不止一次匹配
11.2.10 扩展模式
11.2.11 文档化正则表达式
11.2.12 书写有效的正则表达式
11.2.13 检查正则表达式的有效性
11.2.14 正则表达式、感染变量和调试
11.2.15 置换
11.2.16 音译
11. 3 小结
第12章 利用文件句柄进行输入与输出
12.1 10与文件句柄
12.2 文件句柄数据类型
12.3 标准文件句柄
12.4 创建文件句柄
12.4.l 利用open函数创建文件句柄
12.4.2 为读、写以及更新打开文件
12.4.3 打开任意义件名
12.4. 4 打开标准输入与标准输出
12.4.5 利用IO::File创建文件句柄
12.4. 6 数据文件句柄
12.4.7 其他文件句柄
12.5 引用文件句柄
12.6 从文件句柄读数据
12.6.l 读行操作符
12.6.2 读数据操作的精细控制
12.6.3 检测文件结束
12.6.4 读取一个字符
12. 7 向文件句柄中写数据
12. 7.l 缓冲方式与自动刷新方式
12.7.2 print的其他替代函数
12.8 处理二进制文件与文本文件
12.8. l binmode函数
12.8.2 Open编译指示
12.9 随机访问
12.9.l 利用seek函数定位到文件中的某个特定位置
12.9.2 利用Seek函数清除文件结束条件
12.9.3 在文件结束位置写人数据
12.9.4 查找当前位置
12.9.5 面向对象的随机访问
12.10 截去文件与调整文件大小
12.11 文件上锁
12.11.l 建立文件锁
12.l1.2 文件上锁的问题与防止误解的说明
12.12 修改缺省的输出文件句柄
12.12.l 使用特殊变量来配置其他文件句桶
12.12.2 自动恢复缺省文件句柄
12.12. 3 使用缺省变量与IO::Handle方法
12.13 文件句柄的复制与别名
12.14 重定向文件句柄
12.15 Cache多个文件句柄
12.16 IO::Handle方法与特殊变量
12.17 系统级IO
12.17.l 在系统级打开文件句柄
12.17.2 不带缓冲的读
12.17.3 不带缓冲的写
12. 17.4 系统级文件定位
12.17.5 fcntl与ioctl
12.17.6 POSIX IO
12. 18 小给
第13章 操作文件与目录
13.l 文件与文件名
13.1.l 获取用户信息与组信息
13.1.2 一元文件测试操作符
13.1.3 询问文件
13.l.4 改变文件属性
13.1.5 Fcntl模块
13.1.6 链接、断开链接与重命名文件
13.1.7 复制与移动文件
13.1.8 比较文件
13.1.9 查找文件
13.1.10 解释文件路径
13.1.11 文件名globbing
13. 1.12 glob语法
13. 1.13 临时文件
13.2 操作目录
13. 2.1 读目录
13.2. 2 创建与删除目录
13.2.3 目录间的转移
13. 3 小结
第14章 命令行与Shell交互
14. 1 解析命令行参数
14.1.l 命令行约定
14.1.2 @ARGV数组
14.1.3 利用Getopt::Std进行简单的命令行处理
14.l. 4 利用Cetop::tong进行更为复杂的命令行处理
14.2 shell、shell命令与Perl
14.2. 1 创建一个简单的 Perl shell
14. 2. 2 编写更为有用的shell
14.2. 3 将shell集成到Perl中
14.2. 4 在Windows系统上模拟UNIX命令
14.3 小结
第15章 终端输入与输出
15.l 与终端进行交互
15.2 从键盘读取数据
15.2. l 简单输入
15. 2.2 利用Term:: ReadKey控制终端输入
15.2.3 整行读
15.2.4 利用Term:: ReadLine进行高级行输入
15.2.5 创建终端对象
15.2.6 单词自动完成
15.3 写屏幕
15.3.1 终端功能
15.3.2 彩色输出
15. 4 高级终端模块
15. 4.1 Term::Screen
15.4.2 Curses库
15.5 通过POSIX直接进行终端编程
15.6 小结
第16章 警告与错误
16.1 启用警告
16.2 启用诊断
16.3 产生警告与错误
16.4 截取警告与错误
16.5 译解系统调用所产生的错误结果
16.5.l 错误编号与名称
16.5.2 设置错误编号
16.5.3 求值代码的错误
16.5. 4 扩展的错误消息
16.5.5 Errno与POSIX模块
16.5. 6 检查子进程与外部命令的退出状态
16.6 将非致命错误转换成致命错误
16.7 利用Carp在上下文中返回警告信息与错误信息
16.8 错误日志与系统日志
16.9 高级警告
16.10 小结
第17章 调试
17.1 语用调试支持
17.2 自行调试的应用程序
17.2.l 一个简单的调试系统
17.2.2 一个更好的调试系统
17.2.3 创建调试日志
17.2.4 添加调用上下文到调试消息中
17. 3 Perl调试器
17. 3. 1 启动调试器
17.3.2 输入命令
17.3.3 调试命令
17.3.4 配置调试器
17.3.5 跟踪与终端
17.3.6 通过程序进入调试器
17.3 对使用调试器并常分支
17.4 调试模块与信息模块
17.4.1 Dumpvalue模块
17. 4. 2 Safe模块
17.5 调试Perl解释器
17.6 自动测试
17.6.l 编写测试脚本
17.6. 2 自动化测试
17.7 Profele
17.7. 1 Profile Perl应用程序
17.7.2 产生Profile报告
17.7.3 直接收集计时信息
17.7.4 性能测试
17.8 小结
第18章 文本处理与文档生风
18.l 文本处理
18.1.l 使用Text::Tabs扩充和缩短制表符
18.1.2 使用Text::Abbrev计算缩写
18.1.3 使用Text::ParseWords解析单词和短语
18.1.4 使用Text::Wrap格式化段落
18.1.5 使用Text::Soundex匹配近似的发声单词
18.1. 6 其他文本处理模块
18.2 文档化Perl
18.2.l 注释
18.2.2 简易老式文档
18.2.3 pod工具和实用程序
18. 2.4 对pod编程
18.3 报告--在Perl中的r
18.3.1 格式与格式数据类型
18.3.2 格式结构
18.3. 3 负面控制
18.3.4 组合报告和规则输出
18.4 小结
第19章 面向对象Perl
19.l 对象简介
19.2 使用对象编程
19. 2. 1 创建对象
19.2.2 使用对象
19. 2.3 确定一个对象是什么
19.2.4 确定通过继承得到的特征
19.3 编写对象类
19.3.l 构造器
19.3.2 调试对象类
19.4 继承与派生类
19.4.1 从父类继承
19.4.2 编写可继承的类
19.4.3 私有方法
19.4.4 扩展与重定义对象
19.4.5 多继承
19.4.6 UNIVERSAL构造器
19.5 自动加载方法
19.6 保持数据私有
19. 6.l 私有类数据
19.6.2 私有对象数据
19.7 销毁对象
19.7.l 析构器和继承
19.7. 2 析构器与多继承
19.8 重载操作符
19.8.1 基本重载
19.8.2 确定操作数顺序和操作符名称
19.8.3 重载比较操作符
19.8.4 重载转换操作
19.8.5 回退到本重载的操作
19.8.6 重载与继承
19.8.7 自动生成的操作
19.8.8 可重载的操作
19.9 自动化对象类开发
19.10 捆绑和被捆绑的对象
19.10.l 使用被捆绑的对象
19.10.2 编写被捆绑的对象
19.10.3 标准捆绑对象类
19.10.4 被捆绑的对象方法
19.10.5 被捆绑的hash类的一个例子
19.10.6 使用Tie::stdHash的类
的一个例子
19.11 小结
第20章 深入hd
20.l 分析Peil二进制文件--Config.pm
20.1.l perl-V
20.l.2 工作原理
20.2 Perl进一步分析
20. 2.l 源文件树
20.2. 2 构建Perl
20.3 Perl工作原理
20.3.1 语法分析
20.3.2 编译
20.3.3 解释
20.4 内部变量类型
20.4.1 PV
20.4.2 IV
20.4.3 NV
20.4.4 数组与hash
20.4.5 使用Devel::Peek分析原始数据类型
20.5 Perl编译器
20.5.1 O模块
20.5.2 B模块
20.5.3 B:模块家族
20.5.4 编写Perl编译器后端
20.6 小结
第21章 Perl与其他程序设计语言的集成
21.l 在Perl中使用C
21.1.1 XS概述
21.1.2 从h2xs启动
21.1.3 XS文件
21.1.4 XS函数
21.1.5 TYPEMAP
21.1.6 Makefile
21.2 动态链接
21.2.l 使用FFI模块
21.2.2 使用C:DynaLib模块
21.2.3 使用Win32::API模块
21.3 在C中使用Perl
21.3.l 第一步
21.3.2 实现Perl解释器
21.3.3 嵌入perl代码
21.3.4 得到Perl值
21.3.5 使用Perl子例程
21.3.6 与Perl内核协同工作
21.3.7 使用模块
21.4 Java-Perl Lingo
21.5 Perl与 COM
21.5.1 PerlCOM
21.5.2 PerlCtrl
21.6 其他语言
21.7 小结
第22章 创建过程与管理进程
22. 1 信号
22.l.l 信号处理
22.l.2 发送信号
22.1.3 报警
22.2 启动新进程
22.2.l 替换当前进程
22.2.2 进程ID
22.2.3 进程、组及喘口监控程序
22.3 处理子进程并返回退出代码
22.3.l 等待一个子进程
22.3.2 获得退出状态
22.3.3 处理多个子进程
22.3.4 POSIX标志及函数
22.4 进程间通信
22.4.l 十分简单的解决方法
22.4. 2 管道
22.4.3 打开并运行外部进程
22.4.4 双向管道
22.4.5 使用分叉的open避开shell
22.4.6 连接外部进程的双向管道
22.5 进程间共享数据
22.5.l IPC::SysV
22.5.2 消息队列
22.5.3 信号量
22.5. 4 共享内存段
22. 6 线程
22.6.l 检查线程支持
22.6.2 创建线程
22.6.3 标识线程
22.6.4 线程特定数据
22.6.5 线程管理
22. 6. 6 变量锁
22.6.7 条件变量、信号量及队列
22.6.8 线程安全与锁定代码
22.7 小结
第23章 Perl网络编程
23.l 网络简介
23.1.l 协议层
23.1.2 网际协议
23.1.3 UDPWP
23.1.4 ICMP
23.1.5 其他协议
23.1.6 表示层/应用层
23.1.7 匿名、广播与回送地址
23.2 Perl网络编程
23.3 多路复用服务器
23.4 获得网络信息
23. 4. l 系统网络文件
23.4.2 判断本地主机名
23.5 小结
第24章 编写可移植Perl
24.l 可移植的必要性
24.2 新行
24. 3 文件与文件系统
24.4 字节存放次序与数字宽度
24. 5 系统交互
24. 6 进程间通信
24. 7 外部子例程
24. 8 模块
24. 9 时间及日期
24.10 字符集与字符编码
24. 11 国际化
24. 12 系统资源
24.13 安全性
24.14 风格
24.15 平台
24.15.1 UNIX
24.15.2 DOS及其派生系统
24.15.3 Mac OS
24.15.4 其他Perl
24.16 函数实现
24.17 小结
第25章 Unicode
25.1 Unicede所影响的用户群
25.2 结论
25.3 字符和Unicode简介
25.4 Perl中的数据
25.5 Unicode和正则表达式
25.6 双向脚本
25.6.l 显示bidi
25. 6.2 bidi出算法做了什么
25.6.3 Perl和 bidi
25.7 Perl、118n和Unicode
25.7.l 安装Unicode字体
25. 7.2 安装Unicode编辑器
25. 7.3 创建HTML模板
25.7.4 处理资源文件
25.7.5 运行脚本
25.7.6 输出文件
25.7.7 正在进行的工作
25.8 小结
第26章 本地化和国际化
26.1 走向地区的原因
26.2 关于时间:时区
26.3 看上去像外语
26.4 葡萄牙语的词性变化
26.5 Lingua::*模块
26. 6 编写多语种网页
26.7 创建自己的本地化Perl模块
26. 8 小结
附录A 命令行选项
附录B 特殊变量
附录C 函数
附录D 正则表达式
附录E 标准语用模块
附录F 标准功能模块
附录G Perl资源
附录H 与本书相关的网站:
p2p.wrox.com


教学资源推荐
作者: Brian W.Kernighan,Dennis M.Ritchie
作者: [美]基普·欧文(Kip Irvine) 著
作者: 苏俊
作者: [加拿大] 马丁·P.罗毕拉德(Martin P. Robillard) 著
参考读物推荐
作者: 刘成斌 等编著
作者: 陆凌牛 著
作者: [德] 斯蒂芬·罗斯(Stephan Roth) 著
作者: [英] 本杰明·J.埃文斯(Benjamin J.Evans) [美]大卫·弗拉纳根(David Flanagan)著