第1章 Linux及Perl概述
1.1 Linux系统简介
1.1.1 什么是Linux
1.1.2 Linux的发展历史
1.1.3 Linux主要发行版本
1.1.4 Linux的应用
1.1.5 谁在使用Linux
1.2 Perl介绍
1.2.1 Perl概述
1.2.2 Perl发展历史
1.2.3 Perl的安装
1.2.4 Perl资源
1.3 小结与练习
1.3.1 小结
1.3.2 习题与思考
第2章 标量数据
2.1 标量变量简介
2.1.1 何谓标量变量
2.1.2 标量变量的命名
2.2 数字标量
2.2.1 整型表示法
2.2.2 浮点型表示法
2.2.3 数字格式
2.2.4 定点数方案
2.3 字符串标量
2.3.1 单引号字符串
2.3.2 双引号字符串
2.3.3 反引号
2.3.4 引用操作符
2.4 常用的与标量有关的系统函数
2.4.1 数学函数
2.4.2 标量转换函数
2.5 小结与练习
2.5.1 小结
2.5.2 习题与思考
第3章 数组和列表数据
3.1 数组和列表的基本概念
3.1.1 什么是数组和列表
3.1.2 数组的表示
3.1.3 列表变量
3.2 数组元素的存取
3.2.1 列表的赋值
3.2.2 存取数组元素
3.3 对数组元素的其他操作
3.3.1 字符串中的方括号和变量替换
3.3.2 数组的输出
3.3.3 改变数组元素的值
3.4 与数组有关的函数
3.4.1 按字符顺序排序——sort函数
3.4.2 反转数组——reverse函数
3.4.3 数组去尾——chop和chomp函数
3.4.4 数组连接/拆分——join/split函数
3.4.5 push和pop函数
3.4.6 shift和unshift函数
3.4.7 拼接函数——splice函数
3.5 小结与练习
3.5.1 小结
3.5.2 习题与思考
第4章 散列
4.1 散列简介
4.1.1 什么是散列
4.1.2 为什么要使用散列
4.1.3 散列变量
4.1.4 全局散列变量
4.2 存取散列的元素
4.2.1 访问散列中的元素
4.2.2 增加元素
4.2.3 数组与散列的相互转换
4.3 散列函数
4.3.1 keys函数
4.3.2 values函数
4.3.3 each函数
4.3.4 delete函数
4.4 散列应用举例
4.4.1 用散列实现多维数组
4.4.2 用散列实现结构
4.5 小结与练习
4.5.1 小结
4.5.2 习题与思考
第5章 操作符
5.1 数字操作符
5.1.1 基本数字操作符
5.1.2 数字比较操作符
5.1.3 赋值操作符
5.1.4 自增自减操作符
5.2 字符串操作符
5.2.1 字符串比较操作符
5.2.2 字符串联接和重复操作符
5.3 逻辑操作符和位操作符
5.3.1 逻辑操作符
5.3.2 位操作符
5.4 其他操作符
5.4.1 逗号操作符
5.4.2 条件操作符
5.5 操作符的优先级和结合性
5.6 小结与练习
5.6.1 小结
5.6.2 习题与思考
第6章 控制结构
6.1 控制结构中的有关问题
6.1.1 语句块
6.1.2 养成良好的编程习惯
6.2 条件语句
6.2.1 if系列语句
6.2.2 unless语句
6.2.3 if语句的嵌套
6.3 循环语句
6.3.1 while/until循环
6.3.2 do while/until循环
6.3.3 for循环
6.3.4 foreach循环
6.4 其他控制语句
6.4.1 标记修饰符
6.4.2 修改循环控制流的几个语句
6.4.3 表达式修饰符
6.4.4 &&和||
6.5 小结与练习
6.5.1 小结
6.5.2 习题与思考
第7章 正则表达式
7.1 正则表达式简介
7.1.1 什么是正则表达式
7.1.2 一个简单的例子
7.2 正则表达式的构成
7.2.1 元字符
7.2.2 原子
7.3 正则表达式的正则
7.3.1 单字符类型
7.3.2 组合类型
7.3.3 定位类型
7.3.4 优先级
7.3.5 正则表达式正则的应用举例
7.4 模式修饰行
7.4.1 全局匹配
7.4.2 忽略大小写的匹配
7.4.3 多行匹配与单行匹配
7.4.4 单次匹配
7.4.5 多余空格
7.5 与正则表达式相关的其他问题
7.5.1 模式匹配变量
7.5.2 替代函数
7.5.3 内插变量
7.5.4 模式次序变量
7.5.5 扩展模式匹配
7.6 小结与练习
7.6.1 小结
7.6.2 习题与思考
第8章 字符串操作
8.1 字符串和数值的相互转换
8.1.1 数字与字符的相互转换
8.1.2 数字与字符串的相互转换
8.2 把标量插入字符串
8.3 字符串处理函数
8.3.1 改变大小写函数
8.3.2 字符串截尾函数
8.3.3 搜寻子字符串函数
8.3.4 子字符串的展开与替代
8.3.5 字符串转换函数
8.3.6 取字符串长度函数
8.3.7 分离和连接字符串函数
8.4 小结与练习
8.4.1 小结
8.4.2 习题与思考
第9章 自定义函数
9.1 一些常用的系统函数及其使用
9.2 自定义函数的定义
9.3 函数的调用
9.3.1 先定义后调用
9.3.2 用&调用
9.3.3 前向引用
9.3.4 用do调用
9.3.5 函数调用的返回值
9.4 更方便地使用函数
9.4.1 在函数中使用参数
9.4.2 在函数定义中使用私有变量
9.4.3 使用半私有变量
9.4.4 文件层级的my变量
9.5 Perl 5中预定义的函数
9.6 函数的应用举例
9.6.1 二进制和十进制之间的转换函数
9.6.2 将角度转换为弧度
9.6.3 求一个数的对数
9.6.4 数字和英文的对应
9.6.5 一个较复杂的例子
9.7 小结与练习
9.7.1 小结
9.7.2 习题与思考
第10章 引用
10.1 引用简介
10.1.1 什么是引用
10.1.2 引用操作符
10.2 引用变量类型简介
10.2.1 直接引用变量
10.2.2 常量引用变量
10.2.3 函数引用变量
10.2.4 符号引用变量
10.2.5 匿名引用变量
10.2.6 对象引用变量
10.3 直接引用变量的使用
10.3.1 使用标量引用
10.3.2 使用数组引用
10.3.3 使用散列引用
10.3.4 文件句柄的引用
10.4 访问引用的其他方法
10.4.1 使用大括号
10.4.2 使用向右箭头操作符
10.4.3 使用方括号
10.4.4 多维数组
10.4.5 利用引用传给函数多个数组以及返回多个数组或散列
10.5 小结与练习
10.5.1 小结
10.5.2 习题与思考
第11章 文件系统
11.1 文件操作
11.1.1 打开/关闭文件
11.1.2 读/写文件
11.1.3 删除文件
11.1.4 更改文件名
11.1.5 产生/删除文件链接
11.1.6 判断文件状态
11.1.7 读取文件中的某一行
11.2 目录操作
11.2.1 产生/删除目录
11.2.2 打开/关闭目录
11.2.3 其他目录处理函数
11.3 更改文件和目录的权限、所有权和时间戳
11.3.1 更改权限
11.3.2 更改所有权
11.3.3 更改时间戳
11.4 使用DBM文件
11.4.1 打开/关闭DBM文件
11.4.2 DBM散列的使用
11.5 小结与练习
11.5.1 小结
11.5.2 习题与思考
第12章 输入/输出处理
12.1 基本输入
12.1.1 来自STDIN的输入
12.1.2 输入操作符
12.1.3 @ARGV数组
12.2 基本输出
12.2.1 print函数
12.2.2 格式化输出函数sprintf和printf
12.3 格式化输出
12.3.1 什么是格式
12.3.2 怎么定义格式
12.3.3 使用格式
12.3.4 字段容器
12.3.5 其他问题
12.4 小结与练习
12.4.1 小结
12.4.2 习题与思考
第13章 包和模块
13.1 使用Perl包
13.1.1 包的定义
13.1.2 包的引用和导入
13.1.3 包之间的切换
13.1.4 包和子程序
13.1.5 用包定义私有数据
13.1.6 访问符号表
13.2 使用Perl模块
13.2.1 创建模块
13.2.2 导入模块
13.2.3 模块使用举例
13.3 Perl标准模块
13.4 小结与练习
13.4.1 小结
13.4.2 习题与思考
第14章 面向对象编程
14.1 对象与类简介
14.1.1 对象的特征
14.1.2 对象类
14.1.3 对象方法
14.1.4 对象变量
14.1.5 对象引用变量
14.2 用Perl 5创建类
14.2.1 构造函数
14.2.2 方法
14.2.3 Perl类中的成员变量
14.2.4 析构函数
14.3 继承
14.4 方法的重载
14.4.1 子类方法的重载
14.4.2 操作符的重载
14.5 关于Perl面向对象编程的一些其他问题
14.6 小结与练习
14.6.1 小结
14.6.2 习题与思考
第15章 CGI编程
15.1 Web体系结构与CGI程序结构
15.1.1 Web体系结构
15.1.2 CGI程序结构
15.2 HTTP协议
15.2.1 HTTP通信模型
15.2.2 HTTP请求
15.2.3 HTTP响应
15.3 CGI规范
15.3.1 CGI程序工作原理
15.3.2 CGI方法
15.3.3 环境变量
15.4 CGI模块
15.4.1 使用CGI模块
15.4.2 创建动态文档
15.4.3 创建HTML元素
15.4.4 创建表单
15.5 计数器实现
15.5.1 设计思路
15.5.2 代码实现
15.6 留言簿实现
15.6.1 设计思路
15.7 小结与练习
15.7.1 小结
15.7.2 习题与思考
第16章 数据库编程
16.1 数据库基础
16.2 SQL语句
16.2.1 关系型数据库简介
16.2.2 数据类型
16.2.3 创建和删除表
16.2.4 插入数据
16.2.5 数据查询
16.2.6 修改数据
16.3 使用DBI
16.3.1 DBI与DBD
16.3.2 DBI编程环境的搭建与测试
16.3.3 句柄
16.3.4 连接和断开连接
16.3.5 数据库操作
16.4 DBM数据库
16.4.1 创建和打开DBM文件
16.4.2 插入和删除记录
16.4.3 遍历DBM数据库
16.5 小结与练习
16.5.1 小结
16.5.2 习题与思考
第17章 网络编程
17.1 Socket基础
17.1.1 Socket原理
17.1.2 客户端/服务器模型
17.2 Perl对Socket的支持
17.2.1 和协议相关的函数
17.2.2 Socket底层函数
17.3 面向连接模型应用
17.3.1 服务器端的程序
17.3.2 客户端的程序
17.4 使用预编译模块
17.4.1 使用Net::FTP模块
17.4.2 使用Net::POP3模块
17.5 RPC的实现
17.5.1 Msg模块实现
17.5.2 Msg模块使用举例
17.5.3 RPC模块的实现
17.5.4 RPC模块使用举例
17.6 小结与练习
17.6.1 小结
17.6.2 习题与思考
附录 部分习题参考答案