| 作者 |
| Edwands |
| 丛书名 |
| 软件开发技术丛书 |
| 出版社 |
| 机械工业出版社 |
| ISBN |
| 9787111072836 |
| 简要 |
| 简介 |
| 内容简介书籍计算机书籍 Perl是一种用于工具构造的强大语言,Perl 5 是它的最新版本。它具有语法简单、用途广泛、跨平台、面向对象、嵌入文档、与c/c++链接、易调试等特点,使它成为当今软件世界里一门重要的语言。 本书以生动而又严谨的论述、丰富的示例,详细讲解了这个语言的基本功能和高级技巧,内容深入浅出、详尽透彻。无论是Perl的初学者还是老手,都能从本书收受益。本书是Perl 5语言最全面的参考书。 |
| 目录 |
| 目 录 前言 第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 |