第一部分 基础知识
第1章 Perl简介 3
1.1 Perl的历史 4
1.1.1 初识Perl 5
1.1.2 升级到Perl 4 5
1.1.3 Perl 5简介 6
1.1.4 Perl 5.6给我们带来了什么 6
1.2 Perl的支持平台 7
1.2.1 Windows平台 8
1.2.2 UNIX 8
1.2.3 Mac OS 9
1.2.4 其他 9
1.3 读者必须知道的几点 10
1.3.1 Perl是怎样工作的 10
1.3.2 Perl的安装 11
1.3.3 项目1-1:安装Perl 11
1.4 编写一个Perl程序 22
1.4.1 开始编程 22
1.4.2 一个"Hello"代码 26
1.4.3 更进一步 27
1.5 小结 29
1.6 小测验 29
第2章 数据类型 31
2.1 数据类型 32
2.1.1 数字 32
2.1.2 字符串 34
2.2 变量的赋值 38
2.2.1 给简单变量命名 38
2.2.2 给简单变量赋值 39
2.2.3 项目2-1:将数据存入简单变量中 39
2.3 运算符的作用 39
2.3.1 普通运算符 40
2.3.2 更复杂的运算符及其功能 47
2.3.3 位运算符 54
2.3.4 运算符顺序 55
2.3.5 项目2-2:使用运算符 58
2.4 类型转换 58
2.5 小测验 58
第3章 控制结构 61
3.1 条件语句 62
3.1.1 语句块 62
3.1.2 If-Then-Else条件语句 62
3.1.3 While条件语句 66
3.1.4 Until条件语句 68
3.1.5 Do while-until条件语句 70
3.1.6 For条件语句 71
3.1.7 项目3-1:创建一个记数循环 72
3.2 控制语句 76
3.2.1 Next控制语句 77
3.2.2 Last控制语句 78
3.2.3 Redo控制语句 79
3.3 循环嵌套 80
项目3-2:记数并显示一定范围中的所有奇数 82
3.4 小测验 82
第4章 列表、数组和散列 85
4.1 列表(List) 86
4.2 数组(Array) 89
4.2.1 插入数据 89
4.2.2 访问数组元素 94
4.2.3 项目4-1:数组的基本使用方式 96
4.2.4 项目4-2:数组的其他使用方式 98
4.2.5 项目4-3:堆栈操作 107
4.3 散列 113
4.4 小测验 119
第5章 程序流和子程序 121
5.1 组织你的程序 122
5.1.1 为什么应该组织程序 123
5.1.2 按照逻辑和功能来定义 124
5.1.3 创建代码段 126
5.2 子程序 129
5.2.1 声明子程序 129
5.2.2 项目5-1:运用子程序(address.pl) 130
5.2.3 项目5-2:添加子程序(my_sub.pl) 135
5.3 高级内容 138
5.3.1 临时数据和local() 138
5.3.2 私有数据和my() 142
5.3.3 从包中导入子程序 144
5.4 小结 144
5.5 小测验 145
第二部分 知识应用
第6章 文件和目录管理 149
6.1 基本文件操作 150
6.1.1 文件的打开和关闭 150
6.1.2 文件的读和写 154
6.1.3 项目6-1:从文件中读出 155
6.1.4 项目6-2:创建文件 160
6.2 访问目录 167
6.2.1 浏览 167
6.2.2 项目6-3:查找文件 169
6.3 小测验 171
第7章 正则表达式 173
7.1 什么是正则表达式 174
7.1.1 理解模式 174
7.1.2 内置运算符 174
7.2 模式匹配句法 175
7.2.1 正则表达式选项 175
7.2.2 项目7-1: 在文件中查找正则表达式 181
7.2.3 搜索与替换 196
7.2.4 项目7-2:编写一个查找/替换应用程序 204
7.3 小测验 204
第8章 包和模块 207
8.1 定义 208
8.1.1 什么是包 208
8.1.2 什么是模块 209
8.2 包和库的工作原理 209
8.2.1 构造函数和析构函数 210
8.2.2 库的加载 210
8.2.3 Package语句 212
8.2.4 模块Exporter 212
8.2.5 项目8-1:导入一个模块(Prepare.pm) 215
8.3 库的创建 215
8.3.1 你真的需要创建库吗 215
8.3.2 设计方案 216
8.3.3 注释 216
8.3.4 项目8-2:创建一个库(test_lib.pl) 217
8.4 小结 220
8.5 小测验 220
第9章 使用Perl DBI与数据库交互作用 223
9.1 理解数据库 224
9.1.1 建立数据库 226
9.1.2 项目9-1: 安装PostgreSQL 226
9.2 DBI介绍 231
项目9-2:安装DBI模块 231
9.3 使用DBI 233
9.3.1 连接 233
9.3.2 available_drivers()和data_sources() 234
9.3.3 事务管理 235
9.3.4 查询 235
9.3.5 警告和错误 238
9.3.6 返回结果 240
9.4 小结 241
9.5 小测验 241
第10章 编写CGI脚本 243
10.1 什么是CGI 244
10.1.1 CGI.pm脚本简介 244
10.1.2 CGI编程语言的选择 245
10.1.3 用Perl编写CGI脚本 245
10.1.4 项目10-1:设置Apache的CGI目录 247
10.2 理解表单 253
10.2.1 建立表单 253
10.2.2 设计提交按钮的另一种方法 259
10.2.3 表单提交过程 261
10.2.4 一个简单的Perl CGI程序 263
10.3 发送和接收数据 264
10.3.1 URL编码 264
10.3.2 环境变量 264
10.3.3 Cookies 266
10.4 返回数据 273
10.4.1 处理表单 273
10.4.2 快速格式化 276
10.4.3 可以手工完成的几件事 276
10.4.4 项目10-2:编写自己的表单和脚本 279
10.5 小结 280
10.6 小测验 280
第11章 跨平台函数及其相关问题 281
11.1 system() 282
11.1.1 返回值码 283
11.1.2 正确使用system()函数 284
11.1.3 项目11-1:在Mac OS下使用system()函数 288
11.2 与操作系统有关的一些问题 290
11.2.1 Windows 290
11.2.2 项目11-2: 创建一个只能在Windows下运行的脚本文件 291
11.2.3 项目11-3: 创建一个跨平台的脚本文件 295
11.3 小结 300
11.4 小测验 300
第12章 错误信息和调试 301
12.1 理解何为错误信息 302
12.1.1 看到错误 302
12.1.2 一般习惯 305
12.2 调试程序中的问题 306
12.2.1 命令行选项 306
12.2.2 Perl调试器 307
12.2.3 项目12-1: 熟悉Perl调试器 318
12.3 小测验 319
第13章 高级特征和概念 321
13.1 面向对象程序设计 322
13.1.1 封装性 325
13.1.2 继承性 325
13.1.3 多态性 328
13.2 Perl脚本解释器(PerlScript) 329
13.2.1 在客户端使用PerlScript 330
13.2.2 从未使用过JavaScript/JScript或VBScript 330
13.2.3 服务器端处理 331
13.2.4 Windows脚本主机(Windows Script Host) 332
13.3 用Perl/Tk编写图形用户接口 334
13.3.1 什么是Perl/Tk工具包 334
13.3.2 Perl/Tk工具包概览 334
13.3.3 项目13-1: Hello, World!对话框 336
13.4 结论 337
13.5 小测验 337
附录 小测验答案 339