前言 1
第Ⅰ部分 学习Perl 5
第1章 开始学习Perl 7
1.1 第一个Perl脚本 7
1.2 创建Perl脚本 8
1.2.1 在Windows中进行编辑 8
1.2.2 在UNIX和Linux中进行编辑 9
1.3 Perl解释器 10
1.3.1 确认Perl已经安装 11
1.4 运行Perl脚本 13
1.5 深入第一个程序 13
1.5.1 Print命令 14
1.6 在Perl脚本中获得输入 16
1.6.1 Perl变量 17
1.6.2 标准输入 18
1.7 使用if控制脚本流程 19
1.6.3 chomp命令 19
1.7.1 if表达式 21
1.8 Perl如何运行程序 22
1.8.1 Perl脚本中的问题 22
1.9 查找Perl的更多命令 23
1.10 将脚本转换成命令 27
1.10.1 在UNIX和Linux中生成可执行的脚本 27
1.11 小结 29
1.10.2 在Windows中运行Perl脚本 29
第2章 Perl基础知识 31
2.1 控制Perl脚本 31
2.1.1 while命令 31
2.1.2 until语句 33
2.1.3 unless语句 34
2.1.4 for循环 34
2.1.5 foreach语句 35
2.1.6 continue块 37
2.1.7 其他流程控制 38
2.1.8 结尾修饰 39
2.2 数学运算 41
2.2.1 浮点数 42
2.2.2 十六进制数和八进制数 43
2.2.3 数学函数 43
2.3 文本操作 43
2.3.1 单引号和双引号的差别 44
2.3.2 引号中的问题 45
2.3.3 字符串函数 46
2.3.4 字符串操作符 50
2.4 变量和数组 51
2.4.1 标量变量 51
2.4.2 数组 52
2.4.3 关联数组或散列 59
2.4.4 环境关联数组 64
2.4.5 内部变量 66
2.5 命令行参数 68
2.6.1 sub语句 71
2.6 子例程 71
2.6.2 从子例程中返回数据 72
2.6.3 在子例程中访问变量 73
2.6.4 子例程中的局部变量 74
2.6.5 给子例程传递参数 75
2.6.6 奇特的符号 80
2.6.7 从子例程中返回数组 80
2.7 小结 83
3.1.1 打开文件和使用文件句柄 85
第3章 操作文件 85
3.1 操作文件 85
3.1.2 die 86
3.1.3 复制文件 87
3.1.4 写文件 90
3.1.5 读文件 90
3.2 使用目录 93
3.2.1 读取目录内容 93
3.2.2 创建、移动和改变目录 98
3.3 从文件中获取信息 99
3.3.1 测试文件 104
3.4 操作目录中的文件 108
3.4.1 符号连接 109
3.5 操作文件和目录的软件包 110
3.5.1 复制文件 111
3.5.2 从路径中提取文件名 112
3.5.3 检测当前目录 116
3.5.4 在Windows中设置文件属性 117
3.5.5 从模块中获取信息 119
3.6 小结 120
第4章 变换数据:模式匹配和替换 121
4.1 正则表达式 121
4.1.1 从开始处或从结尾处进行搜索 124
4.1.2 查找多次出现 124
4.1.3 贪婪搜索 125
4.1.5 模式举例 126
4.1.4 改变定界符 126
4.1.6 模式匹配选项 130
4.2 使用模式替换 130
4.2.1 控制定界符 133
4.2.2 通过替换提取数据 134
4.3 使用tr变换数据 135
4.3.1 使用tr转换文件名 136
4.4 小结 139
5.1 理解格式 141
第5章 格式化报表和操作数据库 141
5.1.1 使用格式 142
5.1.2 定义格式 144
5.1.3 页眉 147
5.1.4 控制分页 148
5.2 选择文件句柄 149
5.3 控制数据输出的其他方法 152
5.3.1 使用sprintf 155
5.3.2 在报表中设置日期和时间 156
5.4.1 DBM数据库 160
5.4 数据库和Perl 160
5.4.2 Perl与其他数据库的连接 174
5.5 小结 175
第6章 Perl软件包和模块 177
6.1 软件包 178
6.1.1 软件包内部 178
6.2 模块 178
6.3 通用软件包、模块和扩展包 179
6.2.1 扩展包 179
6.4 使用模块 186
6.4.1 引用和对象 186
6.4.2 面向对象脚本 189
6.5 English模块 192
6.6 下载和安装模块 196
6.6.1 查找所需要的模块 196
6.6.2 下载模块 197
6.6.3 安装模块 198
6.6.5 下载和安装Windows模块 199
6.6.4 使用CPAN模块下载和安装模块 199
6.7 检测脚本的运行环境 203
6.7.1 检查$^0 204
6.7.2 使用Config模块 205
6.7.3 检查环境变量 207
6.8 小结 210
第7章 启动应用程序 213
7.1 启动进程 213
7.1.1 调用exec 213
7.1.2 调用system 216
7.1.3 使用反引号运行程序 217
7.2 用eval控制命令行 219
7.3 小结 219
第Ⅱ部分 Windows环境中的Perl 221
第8章 在Windows环境中启动应用程序 223
8.1 使用Start命令 223
8.2 使用Win32::Snawn函数 224
8.3 用Win32::Process创建进程 228
8.3.1 创建文本模式的进程 233
8.3.2 进程的控制 234
8.4 以批处理文件方式启动Perl脚本 235
8.5 创建快捷方式 237
8.6 小结 239
第9章 使用Perl进行Windows系统管理 241
9.1 获得关于Windows的信息 241
9.2 网络管理 243
9.2.1 域控制器 244
9.2.2 自动发现 245
9.2.3 网络共享 251
9.3 关于用户的操作 258
9.3.1 获得登录名 258
9.3.2 列出所有用户 260
9.4 Windows注册表 264
9.4.1 读取注册表 266
9.4.2 远程读取注册表 274
9.4.3 修改注册表 280
9.5.1 Win32::Service模块 281
9.5 控制和监视Windows服务 281
9.5.2 检查服务的状态 284
9.5.3 检查远程系统上的服务状态 285
9.5.4 停止和启动服务 290
9.6 检查Windows事件日志 293
9.7 其他管理任务 300
9.8 小结 300
第10章 Windows环境中的应用程序自动操作 301
10.1 访问Windows剪贴板 301
10.2 用Perl完成OLE自动操作 302
10.2.1 Win32::OLE模块 303
10.2.2 对Microsoft Excel的脚本控制 304
10.2.3 从磁盘上加载文件 307
10.2.4 对Microsoft Word的脚本控制 307
10.3 小结 309
第Ⅲ部分 UNIX环境和Linux环境中的Perl 311
11.1 UNIX进程模型 313
第11章 启动UNIX和Linux应用程序 313
11.2 在UNIX和Linux中运行程序 314
11.2.1 等待子进程退出 315
11.3 控制进程 317
11.3.1 杀死进程 317
11.4 进程间的管道数据 318
11.5 闹钟的睡眠 320
11.6 处理命令行参数 322
11.6.1 控制Getopt::Std模块所使用的变量 325
11.6.2 支持多字母的命令行开关 326
11.7 小结 330
第12章 管理UNIX和Linux系统 331
12.1 管理用户 331
12.1.1 登录用户名 331
12.1.2 UNIX和Linux口令文件数据 332
12.1.3 帮助访问用户信息的模块 335
12.2 分析日志文件 336
12.3.1 检查进程列表 338
12.3 监控系统 338
12.3.2 使用SNMP 343
12.4 其他系统管理任务 353
12.5 小结 354
第13章 自动操作UNIX和Linux中的应用程序 355
13.1 控制命令行参数 355
13.2 基于应用程序的命令行脚本 356
13.2.1 使用Net::Telnet模块 357
13.3 小结 365
第Ⅳ部分 高级Perl 367
第14章 用Perl制作Web页 369
14.1 公共网关接口 369
14.1.1 CGI URL 370
14.1.2 CGI脚本的工作方式 370
14.1.3 超文本标记语言 371
14.2 用Perl生成CGI脚本 371
14.2.1 用脚本创建Web页 371
14.3 运行这个实例脚本 374
14.4 使用CGI模块 376
14.4.1 测试脚本 377
14.5 Web页中的数据输入表单 379
14.5.1 Web表单 379
14.5.2 处理数据输入表单的一个Perl脚本 380
14.5.3 其他数据输入选项 382
14.5.4 滚动列表和选项菜单 386
14.5.5 输入更多文本 389
14.5.6 添加reset按钮 390
14.5.7 查询所有的参数 392
14.6 XML是Web的未来吗 395
14.6.1 RDF:XML和数据频道 396
14.6.2 编写代码处理XML频道数据 398
14.6.3 把频道数据转换为用于显示的HTML 402
14.7 自维护Web页 416
14.7.1 由主要区域创建Web页 417
14.7.2 允许用户添加主题 418
14.7.3 组织起来:生成自维护页面 423
14.7.4 重新生成Web页 426
14.8 小结 437
第15章 跨平台的Perl开发 439
15.1 在Perl的帮助下编连软件 439
15.1.1 任务完成时发送电子邮件 440
15.1.2 代码改变时自动重新编连 445
15.1.3 生成Makefile文件 449
15.2.1 自动测试 450
15.2 在软件环境中使用Perl 450
15.2.2 查找C和C++程序中的包含文件 456
15.2.3 使用Perl生成文档 459
15.2.4 用Perl生成代码 460
15.2.5 使用Perl模块访问源代码控制系统 468
15.3 小结 468
第16章 Perl用于客户-服务器联网 469
16.1 网际协议 469
16.2 基于套接字的通信 470
16.3 使用Socket模块 471
16.3.1 创建服务器 472
16.3.2 Internet地址 472
16.3.3 查找开放端口 473
16.3.4 创建客户 477
16.3.5 测试客户脚本和服务器脚本 481
16.4 使用套接字联网的Perl模块 482
16.4.1 使用IO::Socket模块 482
16.5.1 使用Net::FTP传输文件 486
16.5 用于网络协议的Perl模块 486
16.4.2 获得主机名 486
16.6 小结 488
第17章 使用Perl和Tk生成图形界面 489
17.1 事件驱动脚本 489
17.1.1 使用回调执行Perl代码 490
17.1.2 Tk组件 490
17.1.3 获得并安装Perl/Tk 491
17.2 使用Perl/Tk编写脚本 493
17.2.1 主窗口 494
17.2.2 创建组件 495
17.2.3 改变组件的属性 495
17.2.4 选择颜色 499
17.3 使组件显现并控制组件的位置 501
17.3.1 用pack控制组件的位置 501
17.3.2 使用grid控制组件的位置 504
17.4 添加更多组件 508
17.5 菜单和菜单栏 511
17.5.1 管理状态域 515
17.5.2 创建滚动文本组件 516
17.6 使用文本对话框打开文件 521
17.7 单行文本项 525
17.8 关于Perl/Tk的更多信息 527
17.9 小结 528
附录A 获得并安装Perl 529
附录B 关于Perl的更多信息 533
附录C CD-ROM上的内容 539