第一部分 基础篇 3
第1章 认识Perl 3
1.1 Perl的历史 4
1.2 为什么学习Perl 5
1.3 让Perl在计算机上安家 7
1.3.1 Perl在Windows上的安装 7
1.3.2 Perl在UNIX/Linux上的安装 9
1.4 写Perl的第一个程序 10
1.4.1 编写Hello.pl 10
1.4.2 运行Hello.pl 10
1.4.3 分析Hello.pl 11
1.5 调试Perl程序 11
1.6 使用Perl的随机帮助 12
1.7 小结 14
第2章 数据类型 15
2.1 标量变量 16
2.1.1 基本概念 16
2.1.2 字符串标量变量 16
2.1.3 整数标量变量 18
2.1.4 浮点数标量变量 19
2.1.5 字串和数值的互换 19
2.1.6 相关函数 20
2.2 数组 23
2.2.1 列表 23
2.2.2 数组变量 24
2.2.3 数组的赋值 25
2.2.4 数组元素的访问 25
2.2.5 数组函数及其操作 26
2.3 关联数组 29
2.3.1 定义关联数组 30
2.3.2 增加和删除元素 31
2.3.3 列出数组的索引和值 31
2.3.4 从数组变量复制到关联数组 31
2.4 引用 32
2.5 小结 34
第3章 Perl的运算符 35
3.1 赋值运算符 35
3.2 算术运算符 36
3.3 比较运算符 36
3.2.1 数值比较运算符 36
3.3.2 字符串比较运算符 37
3.4 逻辑运算符 37
3.5 位运算符 38
3.6 字符串串接和重复运算符 39
3.7 逗号运算符和条件运算符 40
3.7.1 逗号运算符 40
3.7.2 条件运算符 40
3.8 模式匹配 41
3.8.1 匹配操作符 41
3.8.2 模式匹配中的特殊字符 41
3.8.3 模式匹配选项 45
3.8.4 替换操作符 47
3.8.5 翻译操作符 47
3.9 运算符的优先级和结合性 48
3.9.1 运算符的优先级 48
3.9.2 操作符结合性(associativity) 49
3.9.3 使用括号强行设定优先选级 49
3.10 小结 50
第4章 程序控制语句 51
4.1 判断控制 51
4.4.1 if语句 51
4.1.2 unless语句 53
4.1.3 进阶技巧:&&和II作为控制结构 54
4.2 循环性控制结构 54
4.2.1 While语句 55
4.2.2 dowhile语句 55
4.2.3 until语句 56
4.2.4 dountil语句 56
4.2.5 for循环 57
4.2.6 foreach循环 58
4.2.7 last退出循环 60
4.2.8 next到下一次循环 60
4.2.9 die()终止程序 60
4.3 小结 61
第5章 函数 62
5.1 用户函数 62
5.1.1 定义 62
5.1.2 用户函数的调用 63
5.1.3 全局变量和局部变量 64
5.1.4 参数传递 66
5.1.5 递归函数 67
5.2 预定义函数 67
5.3 内部函数 68
5.3.1 标量和字符串函数 69
5.3.2 正则表达式和模式匹配函数 74
5.3.3 数字函数 75
5.3.4 列表数据函数 77
5.3.5 哈希数组函数 78
5.3.6 输入输出函数 80
5.3.7固定长度数据函数 88
5.3.8 文件和目录函数 89
5.3.9 控制程序流程函数 93
5.3.10 与范围有关的关键字函数 98
5.3.11 进程函数 99
5.3.12 模块相关函数 104
5.3.13 类相关函数 105
5.3.14 低级socket函数 107
5.3.15 网络信息函数 111
5.3.16 时间函数 113
5.3.17 杂项 114
5.4 小结 116
第6章 文件和目录 117
6.1 句柄 117
6.2 文件的基本操作 118
6.2.1 文件的打开 118
6.2.2 文件的关闭 119
6.2.3 文件的删除 119
6.2.4 文件的重命名 120
6.3 文本文件的读写 121
6.4 检测文件状态 122
6.5 使用路径名 124
6.6 目录 125
6.6.1 对目录进行读写 125
6.6.2 改变目录 126
6.6.3 创建删除目录 126
6.7 小结 128
第7章 格式和引用 129
7.1 什么是格式 129
7.1.1 定义格式 129
7.1.2 调用格式 130
7.2 选择值域格式 132
7.2.1 文本域 132
7.2.2 数字域 133
7.2.3 多行域 134
7.2.4 填充域 134
7.2.5 指定页眉格式 136
7.2.6 改变默认的格式 136
7.3 小结 137
第8章 面向对象编程 138
8.1 面向对象编程的基本概念 138
8.1.1 包 139
8.1.2 Perl的模块 140
8.1.3 导入模块 141
8.2 创建和使用类 142
8.2.1 创建类 143
8.2.2 建立类的对象 144
8.2.3 类的方法 144
8.2.4 类的继承 145
8.2.5 类的重载 146
8.3 旧式普通文档 148
8.3.1 关于POD的基本知识 148
8.3.2 将POD嵌入Perl的模块 149
8.4 标准模块列表 152
8.5 小结 175
第9章 Perl的调试 176
9.1 调试命令 176
9.2 命令行开关 182
9.2.1 -w标志 182
9.2.2 -c标志 182
9.2.3 -v标志 183
9.2.4 -e标志 184
9.3 调试技巧 185
9.3.1 关于Perl的错误信息 185
9.3.2 精确查找Perl的错误 185
9.3.3 Perl的安全防护 186
9.4 小结 187
第二部分 进阶篇 190
第10章 什么是CGI 190
10.1 客户机/服务器模型 190
10.1.1 服务器和客户机的工作方式 191
10.1.2 客户的三种请求方法 191
10.2 HTML超文本标置语言 195
10.2.1 HTML语言概述 195
10.2.2 HTML的表单 195
10.3 CGI的相关知识 200
10.3.1 CGI的工作过程 200
10.3.2 CGI的传送方法 200
10.3.3 URL编码 201
10.3.4 CGI的实现方法 203
10.4 CGI环境变量 203
10.4.1 与服务器相关的环境变量 204
10.4.2 与客户机相关的环境变量 204
10.4.3 与请求相关的环境变量 204
10.4.4 一个显示环境变量的CGI例子 205
10.5 Perl与其他语言在CGI脚本编程中的对比 207
10.5.1 C/C++语言 207
10.5.2 Visual Basic语言 208
10.5.3 Shell语言 208
10.5.4 其他CGI编程方法 208
10.6 在单机上调试CGI 209
10.6.1 在Windows98下使用PWS 209
10.6.2 在Windows NT和Windows2000下使用IIS 210
10.6.3 在Windows下使用Apache 213
10.6.4 其他单机调试CGI的软件 217
10.7 小结 217
第11章 最基本的CGI应用 218
11.1 建立站点访问计数器 218
11.1.1 编程思路 218
11.1.2 相关知识--SSI 219
1.1.3 程序的实现和分析 224
11.1.4 编码之后的思考 228
11.2 使用表单收集信息 229
11.2.1 表单的功能和风格 229
11.2.2 简单HTML表单例子 230
11.2.3 在线订阅电子杂志表单 231
11.2.4 处理表单数据 235
11.2.5 编码之后的思考 245
11.3 加入邮件列表 245
11.3.1 编程思路 245
11.3.2 相关知识--发送电子邮件 246
11.3.3 HTML页面的修改 247
11.3.4程序的实现 248
11.3.5编码之后的思考 266
11.4 小结 266
第12章 利用口令保护Web站点 267
12.1 建立最基本的口令保护 267
12.1.1 思路分析 267
12.1.2 程序的实现 268
12.1.3 编码之后的思考 282
12.2 进一步对口令进行加密 282
12.2.1 思路分析 282
12.2.2 程序的实现 283
12.2.3 编码之后的思考 298
12.3 小结 299
第13章 留言簿与聊天室 300
13.1 建立一个留言簿 300
13.1.1 思路分析 300
13.1.2 程序的实现 301
13.1.3 编码之后的思考 318
13.2 编写聊天室 318
13.2.1 编程思路 318
13.2.2 程序的实现和分析 319
13.2.3 增强聊天室的功能 329
13.2.4 编码之后的思考 329
13.3 小结 329
第14章 用Perl制作BBS 330
14.1 编程思路 330
14.2 程序的实现和分析 332
14.2.1 变量的定义 332
14.2.2 程序的主体框架 334
14.2.3 程序细节的实现 335
14.2.4 程序的全部源代码 349
14.3 对BBS系统功能的增强 363
14.4 编码之后的思考 364
14.5 小结 364
第15章 数据库 365
15.1 DBM数据库 366
15.1.1 创建和打开DBM 367
15.1.2 删除和插入信息 368
15.1.3 数据库查询 369
15.2 DBM数据库的高级应用 370
15.2.1 数据库锁定 370
15.2.2 数据库排序 371
15.2.3 处理文本文件 372
15.3 DBI和DBD 373
15.3.1 关系型数据库简介 374
15.3.2 连接到数据库 375
15.3.3 执行SQL命令 376
15.3.4 错误处理和跟踪 378
15.4 小结 379
附录A GNU通用公共许可证(GPL) 380
附录B 常用Perl网络资源 385
附录C 光盘使用说明 389