Perl 5编程详解

Perl 5编程详解
作 者: Edward Peschko Michele Dewolfe 康博室
出版社: 机械工业出版社
丛编项: 软件开发技术丛书
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: perl
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

暂缺《Perl 5编程详解》作者简介

内容简介

Perl是一种用于工具构造的强大语言,Perl 5是它的最新版本。它具有语法简单、用途广泛、跨平台、面向对象、嵌入文档、与C/C++链接、易调试等特点,使它成为当今软件世界里一门重要的语言。本书以生动而又严谨的论述、丰富的示例,详细讲解了这个语言的基本功能和高级技巧,内容深入浅出、详尽透彻。无论是Perl的初学者还是老手,都能从本书收收益。本书是Perl 5语言最全面的参考书。主要特点:1 Perl 5语言入门指导2 Perl 5语言最全面的手册3 用Perl 5深入开发的工具4 大量实战模块程序

图书目录

目 录

前言

第1章 设置Perl 5的环境 1

1.1 概述 1

1.2 Perl 5的安装 1

1.3 安装自己的Perl 9

1.3.1 在Unix上安装Perl 9

1.3.2 在Windows 95/NT上构造Perl 5 15

1.3.3 在Macintosh上构造Perl 21

1.3.4 在OS/2上构造Perl 23

1.3.5 在VMS上构造Perl 26

1.3.6 在MS-DOS上构造Perl 27

1.3.7 安装Perl的附加程序包 29

1.3.8 安装文档 31

1.4 其他支持 33

1.4.1 Web站点 33

1.4.2 新闻组 33

1.4.3 邮件列表 33

1.4.4 专业支持 34

1.5 小结 34

第2章 30000英尺高度上的Perl: Perl的

概述 35

2.1 概述 35

2.2 引论 35

2.3 运行Perl 36

2.3.1 用一般方式运行Perl 36

2.3.2 运行Perl的原则 37

2.3.3 Perl的开关 38

2.3.4 在不同的操作系统上运行Perl 38

2.3.5 运行Perl的小结 42

2.4 通用的Perl语法 42

2.4.1 Perl变量 42

2.4.2 其他变量 44

2.4.3 常见错误 47

2.4.4 在30000英尺的高度上观看Perl的

小结 49

2.5 Perl的一些例子 49

2.5.1 例1a:从一组ASCII格式平面文件中

访问数据并打印数据 50

2.5.2 例1b:从一组Excel格式平面文件中

访问数据并打印数据 52

2.5.3 例2:当某个进程完成的时候, 向其他

项目成员发送电子邮件 54

2.5.4 例3: 与Internet服务提供商进行连

接 55

2.5.5 例4:在不同的系统上不能提供的功

能: cat 57

2.5.6 例5:在不同的系统上不能提供的功

能: grep 58

2.5.7 例6:在不同的系统上不能提供的功

能: find 60

2.6 小结 62

第3章 Perl中的变量 63

3.1 概述 63

3.2 基本的Perl数据类型 63

3.2.1 标量 64

3.2.2 操作标量的函数和运算符 71

3.2.3 有关标量内容的小结 74

3.3 数组和列表 74

3.4 哈希变量 80

3.5 句柄 84

3.5.1 对文件句柄进行操作 85

3.5.2 文件句柄小结 89

3.5.3 例子 89

3.6 Perl变量小结 92

第4章 Perl的控制结构和运算符 94

4.1 概述 94

4.1.1 Perl的本质 94

4.1.2 Perl的控制结构 96

4.1.3 for控制结构 98

4.1.4 foreach控制结构 99

4.1.5 if..else..elsif控制结构 101

4.1.6 对控制结构的控制 102

4.1.7 标记控制结构 106

4.1.8 关于Perl控制结构的最后

一些内容 108

4.1.9 Perl运算符简介 108

4.1.10 Perl运算符的优先级 109

4.1.11 使Perl的表达式清晰的技术 110

4.1.12 使用优先级表 111

4.1.13 Perl语言中常用的运算符 112

4.1.14 Perl控制结构和运算符的小结 116

4.1.15 例子: Perl中常见的表达式 116

4.1.16 Perl表达式模式小结 122

4.2 小结 122

第5章 函数和作用域 124

5.1 概述 124

5.2 函数 124

5.2.1 语法 125

5.2.2 参数栈 125

5.2.3 参数栈的小结 128

5.2.4 返回值栈 128

5.2.5 把多个数组或哈希结构传递给

函数 132

5.2.6 Perl函数的注意事项 134

5.2.7 注意事项的小结 137

5.2.8 函数的小结 137

5.3 Perl作用域的方法 138

5.3.1 作用域语法 139

5.3.2 “my”和词法作用域 139

5.3.3 “local”和动态作用域 143

5.3.4 “use strict” 145

5.3.5 Perl中作用域规则的小结 146

5.4 子程序的一些例子 146

5.4.1 使用递归的子程序的例子 146

5.4.2 使用引用的子程序的一些例子 148

5.4.3 使用wantarray的子程序的例子 149

5.4.4 作用域的例子 151

5.5 小结 152

第6章 Perl 5中的上下文 154

6.1 概述 154

6.2 数据上下文简介 154

6.3 标量上下文 155

6.4 列表上下文 156

6.5 带有数组的列表上下文 157

6.6 哈希结构怎么样? 158

6.7 判断上下文的方法 160

6.7.1 使用内置函数以确定数据类型 160

6.7.2 使用运算符确定数据类型 161

6.7.3 高级上下文 163

6.7.4 利用位置来确定数据类型 164

6.7.5 带有内插的上下文规则 165

6.7.6 上下文和函数调用 166

6.7.7 数组引用和上下文 167

6.7.8 控制结构和上下文 168

6.7.9 结论 169

6.7.10 例子 169

6.8 小结 174

第7章 引用 175

7.1 概述 175

7.2 引论 175

7.3 Perl 5的引用: 硬引用和软引用 176

7.4 引用和作用域:垃圾收集 192

7.5 例子 193

7.6 小结 200

第8章 关于Perl的引用以及常见数据结构

的另外一些内容 202

8.1 概述 202

8.2 数组的数组 203

8.2.1 如何识别数组的数组 203

8.2.2 对数组的数组的直接访问 203

8.2.3 在数组的数组中一个常见的错误

概念 205

8.2.4 创建数组的数组 206

8.2.5 数组的数组的访问函数 210

8.3 哈希结构数组 213

8.3.1 匿名引用结构 214

8.3.2 对哈希结构数组进行访问的小结 216

8.3.3 哈希结构数组的构造函数 216

8.3.4 哈希结构数组的小结 223

8.3.5 哈希结构的哈希结构 223

8.3.6 访问哈希结构的哈希结构的方法

小结 225

8.3.7 哈希结构的哈希结构的小结 230

8.4 数组的哈希结构 230

8.5 常见的数据结构的小结 235

8.6 小结 235

第9章 正则表达式 237

9.1 概述 237

9.2 引论 237

9.3 Perl正则表达式的基础 238

9.3.1 原则1 239

9.3.2 原则2 240

9.3.3 原则3 240

9.3.4 原则4 241

9.3.5 原则5 242

9.3.6 原则6 247

9.3.7 原则7 256

9.3.8 原则8 257

9.3.9 正则表达式原则概括 259

9.3.10 正则表达式修饰符 260

9.3.11 匹配和g运算符 263

9.3.12 修饰符和环境 264

9.4 正则表达式的例子 266

9.5 小结 273

第10章 Perl的内置函数和变量 274

10.1 概述 274

10.2 引论 274

10.3 perl的内置函数 275

10.3.1 在内置函数后面的原则 276

10.3.2 主函数 276

10.3.3 用于格式化数据的操作 277

10.3.4 对文件和变量的读写操作 279

10.3.5 文件句柄的读写操作的小结 281

10.3.6 关于变量的操作 282

10.3.7 变量操作小结 290

10.3.8 时间函数 290

10.3.9 时间函数小结 292

10.3.10 调试函数 292

10.3.11 调试函数小结 294

10.3.12 Perl对操作系统的接口 294

10.3.13 文件运算符 300

10.3.14 内部Perl函数小结 301

10.4 内部Perl变量 302

10.4.1 内部文件句柄 303

10.4.2 内部令牌 304

10.4.3 内部命名变量 305

10.4.4 内部单字符变量 308

10.4.5 内部变量小结 313

10.5 小结 313

第11章 Perl5 杂项 315

11.1 概述 315

11.2 格式 316

11.2.1 格式的语法 316

11.2.2 格式如何工作 318

11.3 Coderefs 320

11.3.1 Coderefs的格式 320

11.3.2 匿名子程序 321

11.3.3 代码引用小结 324

11.4 Globbing 324

11.4.1 Globbing技巧 325

11.4.2 Globbing 和 Exporter 325

11.5 用Perl运行程序 326

11.5.1 Perl编译步骤 327

11.5.2 关于Perl语法分析的更多内容 328

11.5.3 BEGIN/END的其他用途 330

11.5.4 BEGIN/END小结和流控制 339

11.6 Eval 339

11.6.1 使用eval的原则 340

11.6.2 eval的用法 340

11.6.3 eval小结 343

11.7 小结 344

第12章 例子 345

12.1 概述 345

12.2 功能示意图 346

12.3 grep程序 346

12.3.1 环境grep 347

12.3.2 cgrepStack.p用法 354

12.3.3 filegrep用法 354

12.4 文本/文件操纵 358

12.4.1 给文件做索引 358

12.4.2 比较和对照目录结构 360

12.4.3 删除垃圾文件 364

12.4.4 解开一个简单密码 365

12.4.5 匹配Perl性质的数字的正则表

达式 367

12.5 代码生成器 368

12.5.1 自动化Telnet 369

12.5.2 使ftp自动化 377

12.6 OLE自动化: 对象链接和嵌入 380

12.6.1 OLE简介 381

12.6.2 用OLE对Word进行更多控制 383

12.6.3 Excel例子:合并两个电子表格 385

12.6.4 通过MAPI发送邮件 387

12.7 WinPerl++ 389

12.7.1 Excel 390

12.7.2 带有Guido 的 Word 393

12.7.3 自动生成模板文件和IDE 393

12.7.4 Guido小结 394

12.8 Lib WWW例子 394

12.8.1 从Web上获取html页 394

12.8.2 从Web表单中获取http标记 395

12.8.3 分析用户信息在线表单的表单建

造器 396

12.9 CGI例子 400

12.9.1 可嵌入的Web计数器 400

12.9.2 Meta-Webcrawler 403

12.10 错误跟踪器 409

12.11 数据库 420

12.11.1 数据库监视器:查看数据库

信息 421

12.11.2 数据库小结 426

12.12 PerlTk例子 427

12.12.1 小型Tk教程 427

12.12.2 PerlTk介绍小结 431

12.12.3 邮件过滤器 431

12.12.4 从Tk应用程序内部运行脚本 435

12.12.5 Tk举例小结 442

12.13 小结 442

第13章 面向对象编程简介 443

13.1 概述 443

13.2 理解面向对象的编程 444

13.2.1 抽象 444

13.2.2 关于学习对象编程的困难 447

13.2.3 初学者学习面向对象编程指南 449

13.3 小结 450

第14章 库和模块的语法 451

14.1 概述 451

14.2 Namespaces 451

14.2.1 名字空间的原则 451

14.2.2 实用的名字空间和包提示 454

14.2.3 名字空间小结 455

14.3 库和关键字require 455

14.3.1 require的用法 455

14.3.2 require小结 458

14.4 带有use的模块 459

14.4.1 use的用法 459

14.4.2 常用use指令 461

14.4.3 use的更多例子 463

14.4.4 use小结 465

14.5 从磁盘安装模块和库 466

14.5.1 库和模块的路径映射:@INC和

%INC 466

14.5.2 库和模块路径映射小结 469

14.6 建立开发环境 469

14.7 小结 473

第15章 Perl中的抽取化和模块编程 474

15.1 模块化编程概念 474

15.1.1 模块化编程的代价 474

15.1.2 把过程脚本转为模块化脚本 476

15.1.3 抽取变量处理 484

15.1.4 结论例子 490

15.1.5 抽取的公用代码的小结 493

15.1.6 模块化编程的示例 494

15.2 小结 504

第16章 对象的语法 506

16.1 概述 506

16.2 基本对象原则 506

16.2.1 一个简单的例子 507

16.2.2 构造函数 508

16.2.3 对象方法 510

16.2.4 对象数据 512

16.2.5 对象算法 512

16.2.6 析构函数 513

16.2.7 基本对象原则小结 514

16.3 中等/高级对象原则 514

16.3.1 类与对象 515

16.3.2 继承性 518

16.3.3 继承小结 523

16.3.4 重载 524

第17章 普通对象 533

17.1 概述 533

17.2 普通类和对象 533

17.2.1 普通类和对象的定义 534

17.2.2 示例概述:木板游戏Strategem 535

17.3 小结 556

第18章 将旧代码转变为对象代码 557

18.1 概述 557

18.2 设计决定:模块与对象 557

18.2.1 模块编程特征 557

18.2.2 面向对象编程及封装 558

18.2.3 在对象与模块之间选择 561

18.3 将程序代码转变成对象 569

18.3.1 例1:ftp和telnet Expect对象 569

18.3.2 例2:配置文件 579

18.3.3 重写telnet.p 584

18.4 小结 587

第19章 维护代码文档的类 589

19.1 概述 589

19.1.1 问题:解决代码文档恶梦 589

19.1.2 第1步:查看可用的资源 589

19.1.3 第2步:解决问题的提议 594

19.1.4 第3步:正式设计和伪代码 602

19.1.5 第4步:全面开发 607

19.1.6 第5步:Pod:: Checker文档化 625

19.1.7 第6步:回归测试 629

19.2 小结 629

第20章 继承性和perl 630

20.1 概述 630

20.2 更好的作业工具:对象图 630

20.2.1 ISA 630

20.2.2 HASA 631

20.2.3 对象图的小结 632

20.3 继承性概述 632

20.3.1 继承性的简要回顾 632

20.3.2 继承性的优缺点 634

20.3.3 继承性的优缺点小结 639

20.4 何时使用继承性或者何时不使用继承

性的例子 639

20.4.1 例1 640

20.4.2 例2 645

20.4.3 例3 655

20.5 小结 660

第21章 分层和Perl 661

21.1 概述 661

21.2 分层概念 661

21.2.1 在读者看到分层时判别它 662

21.2.2 分层概念的详细介绍 664

21.2.3 基本的设计样式 677

21.2.4 最后的分层例子 698

21.3 小结 719

第22章 Perl开发环境 720

22.1 概述 720

22.2 开发程序:Perl式模型 720

22.2.1 调试扩展程序 721

22.2.2 编译器和错误检查器 722

22.2.3 Perl式模型 723

22.3 Perl开发工具 723

22.3.1 缺省的Perl调试器 724

22.3.2 使用调试器的一个例子 741

22.3.3 用Devel::Coverage进行范围测试 746

22.3.4 速度调试: 配置程序 748

22.3.5 perl编译器 764

22.3.6 编译器的小结 765

22.4 小结 766

第23章 Perl调试技巧 767

23.1 概述 767

23.2 熟悉Perl中的调试编程 767

23.3 正确编程的技巧 768

23.3.1 Perl的错误消息 768

23.3.2 样式技巧 771

23.3.3 Perl安全防护 771

23.3.4 -w标志和use diagnostics 775

23.3.5 Lint模块 779

23.3.6 use strict. -w和use diagnostics

以及Lint的小结 783

23.4 定位错误:用use carp进行堆栈跟踪 783

23.4.1 carp() 784

23.4.2 cluck() 785

23.4.3 croak() 785

23.4.4 confess() 785

23.4.5 use Carp的小结 786

23.5 运行中调试—动态查找问题 786

23.5.1 %SIG. $SIG{'_WARN_'}和

$SIG{'_DIE_'} 786

23.5.2 $SIG{'_DIE_'} 787

23.5.3 $SIG{'_WARN_'} 788

23.6 成功的数据调试:Data::Dumper()

和Tie::Watch() 788

23.6.1 Dumper()和调试对象 789

23.6.2 Tie::Watch 790

23.7 调试标志 792

23.7.1 -D的值 792

23.7.2 -D和调试常规表达式的小结 794

23.8 用于调试的编程辅助工具 794

23.8.1 例1:警告指令或实用程序 795

23.8.2 例2:使用联系创建一个安全的

对象 796

第24章 利用已有的工具创建CGI脚本 799

24.1 开始:命令行选项 799

24.2 内部:输入. 输出和数据一致性 808

24.2.1 最大限度地利用POST 808

24.2.2 浏览器特有的特征:Cookie 809

24.2.3 返回身边的问题:数据 809

24.2.4 通往CGI共存的前几个步骤 811

24.3 又一个反复过程 815

24.4 小结 825

第25章 Perl/Tk中的Perl电子

表格(pss) 826

25.1 概述 826

25.2 为什么设计Perl电子表格 827

25.3 高层设计 828

25.3.1 单元格 829

25.3.2 电子表格 829

25.3.3 进行GUI设计 830

25.3.4 电子表格布局和相应的设计 832

25.4 算法:通过utxt处理数据 838

25.4.1 基本数据 838

25.4.2 可求值的表达式 838

25.4.3 内置的电子表格函数 839

25.4.4 间接引用其他单元格 839

25.4.5 utxt在设置数据和对单元格的引用

方面的基本用法 839

25.4.6 utxt使用Perl语法的用法 840

25.4.7 间接引用标志: ==的用法 841

25.4.8 避免无限的依赖性问题 844 25.4.9 算法小结 845

25.5 开发电子表格 845

25.6 调整新电子表格 846

25.6.1 问题域 847

25.6.2 可利用的工具 847

25.6.3 写接口文件 848

25.6.4 组装在一起 852

25.6.5 调整的电子表格的小结 857

25.7 小结 857