Perl技术内幕

Perl技术内幕
作 者: Steven Holzer 王晓娟 王朝阳
出版社: 中国水利水电出版社
丛编项: 万水计算机核心技术精解系列
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: perl
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

暂缺《Perl技术内幕》作者简介

内容简介

本书详细说明了Perl的使用方法,其内容涉及到Perl应用的方方面面,并提供了大量的代码实例,使读者能够快速而容易地学会Perl。本书每一章都分为两部分,前一部分“深入分析”详细说明相关的技术信息,后一部分针对问题提供快速解决方案,可以帮助读者运用知识、解决问题,并快速掌握复杂的技术要点,从而成为专家。本书内容丰富而全面,具有很强的实用性,适用于各个层次的Perl程序员。

图书目录

第1章

Perl基础

1.1

深入分析
1.1.1

Perl概述
1.1.2

Perl

5.6的新功能
1.2

快速解决方案
1.2.1

获取和安装Perl
1.2.2

获取Perl安装的细节
1.2.3

编写代码:创建代码文件
1.2.4

编写代码:语句和声明
1.2.5

编写代码:查找Perl解释程序
1.2.6

编写代码:查找Perl模块
1.2.7

运行代码
1.2.8

运行代码:使用命令行开关
1.2.9

运行代码:使用-w开关显示警告
1.2.10

运行代码:使用-e开关从命令行执行代码
1.2.11

运行代码:使用-c开关检查语法
1.2.12

运行代码:交互式执行
1.2.13

基本技能:文字输入输出
1.2.14

基本技能:使用print函数
1.2.15

基本技能:文字格式化
1.2.16

基本技能:给代码增加注释
1.2.17

基本技能:阅读键盘输入
1.2.18

基本技能:使用默认变量$
1.2.19

基本技能:整理键盘输入
1.2.20

基本技能:避免脚本在Windows中迅速关闭
1.2.21

基本技能:设计Perl程序

第2章

标量变量和表

2.1

深入分析
2.1.1

标量
2.1.2


2.1.3

标量和表工作环境
2.2

快速解决方案
2.2.1

什么是标量
2.2.2

标量命名
2.2.3

声明标量
2.2.4

赋值运算符作用于标量
2.2.5

什么是左值
2.2.6

在标量中使用数字
2.2.7

使用未定义数值:undef
2.2.8

声明常量
2.2.9

处理Perl中的真值
2.2.10

十进制和二进制之间的转换
2.2.11

十进制和八进制之间的转换
2.2.12

十进制和十六进制之间的转换
2.2.13

给标量赋默认值
2.2.14

数字的圆整
2.2.15

在标量中使用字符串
2.2.16

是字符串还是数字
2.2.17

字将与数字转换
2.2.18

使用变量插值
2.2.19

使用高级插值
2.2.20

处理引号和裸词
2.2.21

什么是表
2.2.22

通过索引访问表元素
2.2.23

将表赋值给其他表
2.2.24

表连接到字符串
2.2.25

字符串折成表
2.2.26

使用map作用于表中的每项
2.2.27

使用grep寻找符合标准的表项
2.2.28

表排序
2.2.29

表的反向排列
2.2.30

强制进入标量环境

第3章

数组和哈希表

3.1

深入分析
3.1.1

数组概述
3.1.2

哈希表概述
3.1.3

通配量
3.2

快速解决方案
3.2.1

创建数组
3.2.2

使用数组
3.2.3

数组出栈和入栈
3.2.4

数组移位和反移位
3.2.5

确定数组长度
3.2.6

扩增或缩减数组
3.2.7

清空数组
3.2.8

合并与附加数组
3.2.9

使用数组片
3.2.10

在数组中循环
3.2.11

打印数组
3.2.12

拼接数组
3.2.13

数组反向
3.2.14

数组排序
3.2.15

确定数组是否初始化
3.2.16

删除数组元素
3.2.17

读取命令行参数:@ARGV数组
3.2.18

创建哈希表
3.2.19

使用哈希表
3.2.20

哈希表添加元素
3.2.21

确定哈希表是否拥有特定键
3.2.22

删除哈希表元素
3.2.23

在哈希表中循环
3.2.24

打印哈希表
3.2.25

调换哈希表的键和数值
3.2.26

哈希表排序
3.2.27

合并两个哈希表
3.2.28

在表赋值中使用哈希表和数组
3.2.29

为哈希表预分配内存空间
3.2.30

使用通配量
3.2.31

通配量是符号表项

第4章

运算符和优先级

4.1

深入分析
4.1.1

比较函数与运算符
4.1.2

运算符优先级
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

处理取模和重复:%和X
4.2.9

处理加、减和连接(+、和.)
4.2.10

使用移位运算符:<<和>>
4.2.11

使用命名的一元运算符
4.2.12

使用文件测试运算符
4.2.13

使用关系(比较)运算符
4.2.14

使用相等运算符
4.2.15

比较浮点数
4.2.16

按位与值:&
4.2.17

按位或:|


4.2.18

位异或运算符:^
4.2.19

字符串位运算符
4.2.20

使用C语言风格的逻辑与:&&
4.2.21

使用C语言风格的逻辑或:||
4.2.22

使用范围运算符:..
4.2.23

使用条件运算符:?:
4.2.24

处理赋值运算符=,+=,-=等
4.2.25

使用逗号运算符:,
4.2.26

右向表运算符
4.2.27

使用逻辑否:not
4.2.28

使用逻辑与:and


4.2.29

使用逻辑或:or
4.2.30

使用逻辑异或:xor
4.2.31

引号与类引号运算符
4.2.32

文件输入/输出运算符:<>
4.2.33

Perl没有的C运算符

第5章

条件语句与循环

5.1

深入分析
5.1.1

条件语句
5.1.2

循环语句
5.2

快速解决方案
5.2.1

Perl中的简单和复合语句
5.2.2

使用if语句
5.2.3

反向if语句:unless
5.2.4

使用for循环
5.2.5

使用foreach循环
5.2.6

使用while在元素中循环
5.2.7

相反的While循环:until
5.2.8

使用map在元素中循环
5.2.9

使用grep寻找元素
5.2.10

使用if、unless、until、while和foreach修饰语句
5.2.11

使用do语句创建do

while循环
5.2.12

使用next跳到下一个循环重复过程
5.2.13

使用last命令结束循环
5.2.14

使用redo循环命令重复循环过程
5.2.15

创建switch语句
5.2.16

使用goto语句
5.2.17

使用eval函数执行代码
5.2.18

使用exit语句结束程序
5.2.19

使用die语句

第6章

正则表达式

6.1

深入分析
6.1.1

使用正则表达式
6.2

快速解决方案
6.2.1

创建正则表达式:概述
6.2.2

创建正则表达式:字符
6.2.3

创建正则表达式:字符类
6.2.4

创建正则表达式:多重匹配模式
6.5.5

创建正则表达式:量词
6.2.6

创建正则表达式:断言
6.2.7

创建正则表达式:引用前一次匹配的向后引用
6.2.8

创建正则表达式:正则表达式扩展
6.2.9

与m//和S///一起使用修饰符
6.2.10

用tr///转换字符串
6.2.11

和tr///一起使用修饰符
6.2.12

匹配单词
6.2.13

匹配行首
6.2.14

匹配行尾
6.2.15

检查数字
6.2.16

检查字母
6.2.17

从上一个模式结束的地方开始查找:\G
6.2.18

匹配多行文本
6.2.19

使用不区分大小写的匹配
6.2.20

提取子字符串
6.2.21

在正则表达式中使用函数调用和Perl表达式
6.2.22

查找重复的单调
6.2.23

降低量调的“贪婪”程度:最小匹配
6.2.24

删除先导和尾部空格
6.2.25

使用断言来预测和回想
6.2.26

编译正则表达式

第7章

子程序

7.1

深入分析
7.1.1

编写子程序
7.1.2

设置范围
7.1.3

返回值
7.2

快速解决方案
7.2.1

声明子程序
7.2.2

使用子程序原型
7.2.3

定义子程序
7.2.4

调用子程序
7.2.5

调用之前检查子程序是否存在
7.2.6

读取传递给予程序的参数
7.2.7

使用不同个数的参数
7.2.8

为参数设置默认值
7.2.9

子程序(函数)的返回值
7.2.10

返回undef指出操作失败
7.2.11

用my设置范围
7.2.12

要求词汇范围的变量
7.2.13

用local创建临时变量
7.2.14

确定my和local之间的差别
7.2.15

用out设置范围
7.2.16

创建永久(静态)变量
7.2.17

得到子程序的名称和caller
7.2.18

递归调用子程序
7.2.19

嵌套子程序
7.2.20

按引用传递
7.2.21

接引用返回
7.2.22

传递符号表项(Typeglob)
7.2.23

用Wantarry检查必要的返回上下文
7.2.24

创建内联函数
7.2.25

模拟命名参数
7.2.26

覆盖内置子程序
7.2.27

创建匿名子程序
7.2.28

创建子程序调度表
7.2.29

重新定义子程序

第8章

格式和字符串处理

8.1

深入分析
8.1.1

Perl格式
8.2

快速解决方案
8.2.1

显示非格式化文本:Perl

here文档
8.2.2

创建格式化文本
8.2.3

格式:左对齐文本
8.2.4

格式:右对齐文本
8.2.5

格式:文本居中
8.2.6

格式:打印数字
8.2.7

格式:格式化多行输出
8.2.8

格式:用文本切片格式化输出多行文本
8.2.9

格式:无格式多行输出
8.2.10

格式:表单项部输出
8.2.11

格式:使用格式变量
8.2.12

格式:向文件打印格式化文本
8.2.13

格式:创建多页面报表
8.2.14

格式:低级格式化
8.2.15

字符串处理:用lc和uc转换大小写
8.2.16

字符串处理:用lcfirst和ucfirst转换第1个字母的大小写
8.2.17

字符串处理:用index和rindex查找字符串
8.2.18

字符串处理:用substr得到子串
8.2.19

字符串处理:用length得到字符串长度
8.2.20

字符串处理:打包和解包字符串
8.2.21

字符串处理:用sprintf格式化字符串
8.2.22

字符串处理:比较字符串
8.2.23

字符串处理:用ord和chr访问Unicode值
8.2.24

字符串处理:按字符处理字符串
8.2.25

字符串处理:颠倒字符串
8.2.26

字符串处理:用crypt加密字符串
8.2.27

字符串处理:使用引用运算符
8.2.28

POD:普通文档说明
8.2.29

POD:用POD命令创建POD
8.2.30

POD:用POD命令格式化文本
8.2.31

POD:在Perl代码中嵌入POD

第9章

引用

9.1

深入分析
9.1.1

直接引用
9.1.2

符号引用
9.1.3

箭头运算符
9.1.4

匿名数组、哈希表和子程序
9.2

快速解决方案
9.2.1

创建直接引用
9.2.2

创建匿名数组的引用
9.2.3

创建匿名哈希表的引用
9.2.4

创建对匿名子程序的引用
9.2.5

用匿名哈希表模仿用户自定义数据类型
9.2.6

用符号表得到引用
9.2.7

反引用引用
9.2.8

用箭头运算符进行反引用
9.2.9

忽略箭头运算符
9.2.10

按引用传递和返回子程序参数
9.2.11

用ref运算符确定引用类型
9.2.12

创建符号引用
9.2.13

禁止符号引用
9.2.14

避免循环引用
9.2.15

使用弱引用
9.2.16

类似哈希表的数组:作为哈希表引用使用数组引用
9.2.17

在Perl中创建永久范围闭包
9.2.18

从函数模板创建函数

第10章

预定义变量

10.1

深入分析
10.1.1

预定义变量的英语版
10.1.2

为特定的文件句柄设置预定义变量
10.2

快速解决方案
10.2.1

$':匹配后字符串
10.2.2

$-:页码上剩余的格式化行数
10.2.3

$!:当前Perl错误
10.2.4

$":插入数组值的输出字段分隔符
10.2.5

$#:打印数字的输出格式
10.2.6

$$:进程号
10.2.7

$%:当前格式输出页面
10.2.8

$&:最近模式匹配
10.2.9

$(:真实分组编号
10.2.10

$):有效组编号
10.2.11

$*:多行匹配
10.2.12

$,:输出字段分隔符
10.2.13

$.:当前输入行号
10.2.14

$/:输入记录分隔符
10.2.15

$::格式字符串分段字符
10.2.16

$;:下标分隔符
10.2.17

$?:上一次管道关闭,backtick命令,或者系统调用状态
10.2.18

$@:来自最后一个eval的错误
10.2.19

$[:数组基数
10.2.20

$\:输出记录分隔符
10.2.21

$]:Perl版本
10.2.22

$^:当前页面顶部格式
10.2.23

$^A:书写累加器
10.2.24

$^C:编译开关
10.2.25

$^D:当前调试标记
10.2.26

$^E:针对操作系统的特定错误信息
10.2.27

$^F:最大Unix系统文件描述符
10.2.28

$^H:当前语法检查
10.2.29

$^I:当前Inplace编辑值
10.2.30

$^L:输出格式换行
10.2.31

$^M:紧急事件内存缓冲区
10.2.32

$^O:操作系统名称
10.2.33

$^P:调试支持
10.2.34

$^R:最后一个正则表达式断言的结果
10.2.35

$^S:解释程序的状态——eval内部或者外部
10.2.36

$^T:脚本开始运行的时间
10.2.37

$^V:作为字符串的Perl版本
10.2.38

$^W:警告开关的当前值
10.2.39

$^X:可执行文件名称
10.2.40

${^WARNING

BITS}:警告检查
10.2.41

${^WIDE

SYSTEM

CALLS}:宽字符系统调用
10.2.42

$:默认变量
10.2.43

$:匹配前字符串
10.2.44

$|:关闭缓冲区
10.2.45

$~:当前报告格式的名称
10.2.46

$+:最后一次括号匹配
10.2.47

$<:真实用户ID
10.2.48

$=:格式当前页面长度
10.2.49

$>:有效用户ID
10.2.50

$0:脚本名称
10.2.51

$ARGV:当前<>输入文件的名称
10.2.52

$n:模式匹配编号n
10.2.53

%:::主要符号表(%main::)
10.2.54

%ENV:环境变量
10.2.55

%INC:包含文件
10.2.56

%SIG:信号处理程序
10.2.57

@_:子程序参数
10.2.58

@ARGV:命令行参数
10.2.59

@INC:计算脚本的位置

第11章

内置函数:数据处理

11.1

深入分析
11.1.1

Perl函数
11.2

快速解决方案
11.2.1

abs:绝对值
11.2.2

atan2:反正切
11.2.3

Math::BigInt和Math::BigFloat:大数
11.2.4

Chr:字符码中的字符
11.2.5

Math::Complex:复数
11.2.6

cos:余弦
11.2.7

each:哈希表键/值对
11.2.8

eval:运行期间计算Perl代码
11.2.9

exists:检查哈希表键
11.2.10

exp:计算e的幂
11.2.11

grep:查找匹配元素
11.2.12

hex:从16进制转换
11.2.13

index:子串的位置
11.2.14

int:截断整数
11.2.15

整数计算
11.2.16

join:将表加入到字符串中
11.2.17

keys:得到哈希表键
11.2.18

lc:转换为小写
11.2.19

lcfirst:第一个字符转换为小写
11.2.20

length:得到字符串的长度
11.2.21

pack:将值打包到字符串中
11.2.22

POSIX函数
11.2.23

rand:创建随机数
11.2.24

reverse:颠倒表
11.2.25

rindex:颠倒索引
11.2.26

sin:正弦
11.2.27

sort:排序表
11.2.28

split:字符串拆分为字符串数组
11.2.29

sprintf:格式化字符串
11.2.30

sqrt:平方根
11.2.31

srand:设置随机数种子
11.2.32

substr:得到子串
11.2.33

time:得到从1970年1月1日以来的秒数
11.2.34

Math::Trig中的三角函数
11.2.35

uc:转换为大写
11.2.36

ucfirst:大写第一个字符
11.2.37

unpack:从打包字符串中解开值
11.2.38

values:得到哈希表值
11.2.39

vec:访问无符号整数向量

第12章

内置函数:输入/输出

12.1

深入分析
12.1.1

使用Perl输入/输出
12.2

快速解决方案
12.2.1

alarm:发送警告信号
12.2.2

使用sleep函数
12.2.3

carp、cluck、croak和confess:报告警告和错误
12.2.4

chomp和chop:删除行尾
12.2.5

curses:终端屏幕处理接口
12.2.6

die:由于错误而退出
12.2.7

Expect:控制其他应用程序
12.2.8

getc:得到输入字符
12.2.9

记录错误
12.2.10

POSIX:Termios:低级终端接口
12.2.11

print:打印列表数据
12.2.12

Printf:打印格式化列表数据
12.2.13

控制台上的彩色打印
12.2.14

用尖括号读取输入:<>
12.2.15

重定向STDIN、STDOUT和STDERR
12.2.16

Term::Cap:清除屏幕
12.2.17

Term::Cap:定位光标以显示文本
12.2.18

Term::ReadKey:简单终端驱动程序控制
12.2.19

Term::ReadLine:支持命令行编辑
12.2.20

warn:显示警告
12.2.21

write:写入格式化记录

第13章

内置函数:文件处理

13.1

深入分析
13.1.1

Perl中的文件处理
13.2

快速解决方案
13.2.1

open:打开文件
13.2.2

close:关闭文件
13.2.3

print:打印到文件
13.2.4

write:向文件中写入
13.2.5

binmode:设置二进制模式(适用于MS-DOS)
13.2.6

设置输出通道缓冲方式
13.2.7

从命令行读取传递的文件
13.2.8

使用角运算符<>从文件句柄中读取
13.2.9

read:逐个字节读取输入
13.2.10

readline:读取一行数据
13.2.11

getc:读取一个字符
13.2.12

seek:设置文件中的当前位置
13.2.13

tell:得到文件中的当前位置
13.2.14

stat:得到文件状态
13.2.15

POSIX:文件函数
13.2.16

select:设置默认输出文件句柄
13.2.17

eof:测试文件尾
13.2.18

flock:锁定文件以进行独占访问
13.2.19

删除或者添加回车——从DOS到Unix和从Unix到DOS
13.2.20

在程序代码中存储文件
13.2.21

统计文件中的行数
13.2.22

向子程序传递文件句柄
13.2.23

复制和重定向文件句柄
13.2.24

创建临时文件名
13.2.25

就地编辑文件
13.2.26

向文本文件中写入数组和从文本文件中读取数组
13.2.27

向文本文件中读/写哈希表
13.2.28

使用固定长度的记录进行随机访问
13.2.29

chmod:修改文件权限
13.2.30

glob:查找匹配的文件
13.2.31

rename:重命名文件
13.2.32

unlink:删除文件
13.2.33

Copy:复制文件
13.2.34

opendir:打开目录句柄
13.2.35

closedir:关闭目录句柄
13.2.36

readdir:读取目录项
13.2.37

telldir:得到目录位置
13.2.38

seekdir:设置目录中的当前位置
13.2.39

rewinddir:将目录位置设置到开头
13.2.40

chdir:改变工作目录
13.2.41

mkdir:创建目录
13.2.42

rmdir:删除目录

第14章

标准模块

14.1

深入分析
14.1.1

可用的标准模块
14.1.2

使用do,require和use
14.2

快速解决方案
14.2.1

安装模块
14.2.2

Benchmark:测试代码执行时间
14.2.3

Class::Struct:创建C样式的结构
14.2.4

constant:创建常量
14.2.5

CreditCard:检查信用卡号
14.2.6

Cwd:得到当前工作目录的路径
14.2.7

Data::Dumper:显示结构化数据
14.2.8

Date::Calc:日期和时间相加和相减
14.2.9

diagnostics:打印完整的诊断结果
14.2.10

English:为预定义变量取英语名称
14.2.11

Env:导入环境变量
14.2.12

ExtUtils:支持Perl扩展
14.2.13

File::Compare:比较文件
14.2.14

File::Find:在目录中查找文件
14.2.15

FileCache:保存多个打开的输出文件
14.2.16

GetOpt:解释命令行开关
14.2.17

locale:启用区分地域的操作
14.2.18

safe:创建安全代码隔间
14.2.19

shell:作为子程序使用命令行解释器命令
14.2.20

strict:限制编码习惯
14.2.21

Text::Abbrev:找到惟一的缩写
14.2.22

Text::Tabs:在文本中使用制表位
14.2.23

Text::Wrap:封闭文本行
14.2.24

Tie::1xHash:接插入顺序恢复哈希表值
14.2.25

Tie::RefHash:在哈希表中存储直接引用
14.2.26

Time:创建时间惯例
14.2.27

vars:预先声明的全局变量

第15章

Perl/Tk——窗口、按钮及其他

15.1

深入分析
15.2

快速解决方案
15.2.1

创建Tk窗口
15.2.2

使用标签部件
15.2.3

使用按钮部件
15.2.4

使用文本部件
15.2.5

指定索引
15.2.6

用pack排列Tk部件
15.2.7

绑定Tk事件和代码
15.2.8

使用单选按钮和复选框部件
15.2.9

使用列表框部件
15.2.10

使用标尺部件
15.2.11

使用滚动条部件
15.2.12

使用画布部件
15.2.13

显示图像
15.2.14

显示位图
15.2.15

用框架安排部件
15.2.16

用place安排部件
15.2.17

使用输入部件
15.2.18

用Scrolled构造函数滚动部件
15.2.19

使用菜单部件
15.2.20

使用级联菜单、复进菜单、单选菜单、菜单加速器
15.2.21

使用对话框

第16章

数据结构和数据库

16.1

深入分析
16.1.1

Perl中的数据结构
16.1.2

好的想法:use

strict

vars
16.1.3

Perl中的数据库
16.2

快速解决方案
16.2.1

为复杂记录存储引用和其他元素
16.2.2

使用数组的数组(多维数组)
16.2.3

创建数组的数组
16.2.4

访问数组的数组
16.2.5

使用哈希表的哈希表
16.2.6

创建哈希表的哈希表
16.2.7

访问哈希表的哈希表
16.2.8

使用哈希表的数组
16.2.9

创建哈希表的数组
16.2.10

访问哈希表的数组
16.2.11

使用数组的哈希表
16.2.12

创建数组的哈希表
16.2.13

访问数组的哈希表
16.2.14

使用链表和环形缓冲区
16.2.15

在磁盘上存储数据结构
16.2.16

复制数据结构
16.2.17

打印数据结构
16.2.18

创建数据结构类型
16.2.19

写数据库文件
16.2.20

读取数据库文件
16.2.21

数据库排序
16.2.22

文本文件作为数据库处理
16.2.23

执行SQL

第17章

创建包和模块

17.1

深入分析
17.1.1


17.1.2

模块
17.2

快速解决方案
17.2.1

创建包
17.2.2

创建包构造函数:BEGIN
17.2.3

创建包析构函数:END
17.2.4

确定当前包名
17.2.5

跨过文件界线拆分包
17.2.6

用our跨过包设置全局范围
17.2.7

创建模块
17.2.8

默认从模块导出符号
17.2.9

允许符号从模块中导出
17.2.10

阻止自动符号导入
17.2.11

阻止符号导出
17.2.12

不带import方法的导出
17.2.13

在编译期间用未知包名限制符号
17.2.14

重新定义内置子程序
17.2.15

创建嵌套模块
17.2.16

设置并检测模块版本号
17.2.17

在模块中自动加载子程序
17.2.18

用AUTOLOAD仿真子程序
17.2.19

使用AutoLoader和SelfLoader
17.2.20

用h2xs创建专业模块和模块模板
17.2.21

测试模块
17.2.22

压缩模块以备发布
17.2.23

提交模块到CPAN
17.2.24

XS:在C中创建Perl扩展名
17.2.25

传递数值到XSUB
17.2.26

从XSUB返回表

第18章

创建类和对象

18.1

深入分析
18.1.1


18.1.2

对象
18.1.3

方法
18.1.4

数据成员
18.1.5

继承
18.2

快速解决方案
18.2.1

创建类
18.2.2

创建构造函数初始化对象
18.2.3

从类创建对象
18.2.4

创建类对象
18.2.5

创建对象方法(实例方法)
18.2.6

调用方法
18.2.7

在对象内存储数据(实例变量)
18.2.8

创建数据访问方法
18.2.9

标记实例方法和变量为私有
18.2.10

创建对象共享的类变量
18.2.11

创建析构函数
18.2.12

实现类继承
18.2.13

继承构造函数
18.2.14

继承实例数据
18.2.15

多重继承

第19章

面向对象编程

19.1

深入分析
19.1.1

数据类型与类连接
19.1.2

面向对象编程的私有性
19.1.3

重载运算符
19.1.4

附加的OOP主题
19.2

快速解决方案
19.2.1

覆盖基类方法
19.2.2

访问已覆盖的基类方法
19.2.3

标量与类相连接
19.2.4

数组与类连接
19.2.5

哈希表与类连接
19.2.6

使用Perl

UNIVERSAL类
19.2.7

用闭包创建私有数据成员
19.2.8

使用匿名子程序创建私有方法
19.2.9

创建对方法的引用
19.2.10

数据成员用作变量
19.2.11

使用包含其他对象的对象
19.2.12

委托的类关系
19.2.13

重载二元运算符
19.2.14

重载一元运算符

第20章

Internet和套接字编程

20.1

深入分析
20.1.1

编写Internet程序
20.1.2

编写套接字程序
20.1.3

客户和服务器
20.2

快速解决方案
20.2.1

获得DNS地址
20.2.2

使用FTP
20.2.3

使用LWP::Simple获取Web页面
20.2.4

用LWP::UserAgent获取Web页面
20.2.5

Ping主机
20.2.6

从新闻组下载布告
20.2.7

接收电子邮件
20.2.8

发送电子邮件
20.2.9

使用Telnet
20.2.10

套接字匹配对应用于进程间通信
20.2.11

采用IO::Socket创建TCP客户
20.2.12

采用IO::Socket创建TCP服务器
20.2.13

采用多线程及IO::Socket创建交互式双向客户/服务器应用程序
20.2.14

使用Socket创建TCP客户
20.2.15

使用Socket创建TCP服务器
20.2.16

创建Unix域套接字客户
20.2.17

创建Unix域套接字服务器
20.2.18

查看是可以从套接字中读取还是可以写到套接字
20.2.19

创建UDP客户
20.2.20

创建UDP服务器

第21章

CGI编程:CGI.pm

21.1

深入分析
21.1.1

使用CGI.pm进行CGI编程
21.1.2

在cgil.cgi中创建HTML控件
21.1.3

在cgi2.cgi中读取HTML控件的数据
21.2

快速解决方案
21.2.1

使用PerlScript
21.2.2

启动HTML文档
21.2.3

显示图像
21.2.4

创建HTML标题
21.2.5

居中HTML元素
21.2.6

创建项目编号列表
21.2.7

创建超技接
21.2.8

创建横线
21.2.9

创建HTML表单
21.2.10

处理文本字段
21.2.11

读取HTML控件中的数据
21.2.12

处理文本区域
21.2.13

处理复选框
21.2.14

处理滚动列表
21.2.15

处理单选按钮
21.2.16

处理口令字段
21.2.17

处理弹出菜单
21.2.18

处理隐藏数据字段
21.2.19

创建Submit和Reset按钮从HTML表单上传数据
21.2.20

结束HTML表单
21.2.21

结束HTML文档
21.2.22

从网页调用CGI脚本
21.2.23

创建图像映射
21.2.24

创建框架
21.2.25

非面向对象的CGI编程
21.2.26

调试CGI脚本

第22章

CGI:创建Web计数器、来宾簿、电子邮件程序和安全脚本

22.1

深入分析
22.1.1

CGI安全
22.2

快速解决方案
22.2.1

认真对待安全性
22.2.2

处理被感染的数据
22.2.3

未感染的数据
22.2.4

在UniX中赋予CGI脚本更多的特权
22.2.5

确定浏览器处理的MIME类型
22.2.6

从CGI脚本返回图像
22.2.7

创建网页点击计数器
22.2.8

创建来宾簿
22.2.9

从CGI脚本发送电子邮件

第23章

CGI:创建多用户聊天服务器推技术、cookie和游戏

23.1

深入分析
23.2

快速解决方案
23.2.1

创建多用户聊天应用程序
23.2.2

使用服务器推技术
23.2.3

使用服务器端包含
23.2.4

写和读Cookies
23.2.5

创建游戏

第24章

CGI:创建购物车、数据库、站点搜索和文件上传

24.1

深入分析
24.1.1

处理CGI.pm
24.2

快速解决方案
24.2.1

在重新显示的表单中初始化数据
24.2.2

使用CGI环境变量检查浏览器类型及更多信息
24.2.3

检查用户是否登录
24.2.4

重定向浏览器
24.2.5

数据库CGI编程
24.2.6

上传文件
24.2.7

Web站点搜索:查询匹配字符串
24.2.8

购物车演示程序
24.2.9

没有Cookies的购物车演示程序

第25章

XML::DOM解析

25.1

深入分析
25.1.1

XML看起来像什么?
25.1.2

格式良好的有效XML文档
25.1.3

XML文档类型定义
25.1.4

在DTD中指定属性
25.1.5

XML和Perl
25.1.6

XML::DOM模块
25.2

快速解决方案
25.2.1

使用XML::DOM
25.2.2

DOM解析:DOMParser.pl示例
25.2.3

处理文档节点
25.2.4

处理元素节点
25.2.5

处理属性节点
25.2.6

处理文本节点
25.2.7

处理XML处理指令节点
25.2.8

结束元素节点
25.2.9

运行DOMParser.pl示例

第26章

XML:修改文档内容和SAX解析

26.1

深入分析
26.1.1

在XML文档中导航
26.1.2

修改XML文档
26.1.3

XML的简单API
26.2

快速解决方案
26.2.1

在XML文档中导航
26.2.2

搜索特定的XML元素
26.2.3

创建新的XML元素
26.2.4

创建新的XML属性
26.2.5

替换XML元素
26.2.6

删除XML元素
26.2.7

处理错误
26.2.8

使用SAX
26.2.9

SAX解析:SAXParser.pl示例
26.2.10

处理文档的开头
26.2.11

处理元素的开头
26.2.12

处理属性
26.2.13

处理元素的末尾
26.2.14

处理文本
26.2.15

处理指令的处理
26.2.16

处理文档的末尾
26.2.17

运行SAXParser.pl
26.2.18

使用SAX在XML文档中导航
26.2.19

处理SAX解析中的错误

第27章

CGI、SOAP和WML

27.1

深入分析
27.1.1

XML和CGI
27.1.2

CGI::XMLForm模块
27.1.3

SOAP
27.1.4

WML
27.2

快速解决方案
27.2.1

XML与CGI一起使用
27.2.2

CGI::XMLForm写XML
27.2.3

CGI::XMLForm查询XML
27.2.4

使用SOAP
27.2.5

WML:创建超链接
27.2.6

WML:处理文本输入
27.2.7

WML:使用Select元素
27.2.8

WML:创建表
27.2.9

WML:创建计时器
27.2.10

WML:处理图像
27.2.11

WML:接口到Perl
27.2.12

WML:使用表单接口到Perl
27.2.13

WML:将多个参数传递给Perl

第28章

代码中的Web处理

28.1

深入分析
28.1.1

HTML、HTTP和LWP模块
28.1.2

处理在线用户注册
28.2

快速解决方案
28.2.1

获取并解析网页
28.2.2

获取网页中的链接
28.2.3

用LWP::UserAgent和HTTP::request获取网页
28.2.4

用IO::Socket获取网页
28.2.5

创建镜像站点
28.2.6

从代码中提交HTML表单
28.2.7

创建小型Web服务器
28.2.8

处理在线用户注册