×
图文详情
  • ISBN:9787115402066
  • 装帧:一般胶版纸
  • 册数:暂无
  • 重量:暂无
  • 开本:16开
  • 页数:332
  • 出版时间:2015-10-01
  • 条形码:9787115402066 ; 978-7-115-40206-6

本书特色

perl是一种功能强大的通用编程语言,享有“一种拥有各种语言功能的梦幻脚本语言”、“unix中的王牌工具”等美誉,受到了国内程序员和系统管理员的青睐。 《perl进阶(第2版)》作为learning perl一书的进阶,主要讲解了如何更加有效地利用perl进行开发。本书总共分为21章,每章内容篇幅不大,主要内容包括perl简介、使用模块、中级操作基础、引用简介、引用和作用域、操作复杂的数据结构、对子例程的引用、文件句柄引用、正则表达式引用、构建更大型的程序、创建自己的perl发行版、对象简介、测试简介、带数据的对象、exporter模块、对象析构、moose简介、高级测试、为cpan贡献代码等知识。 《perl进阶(第2版)》适合具有一定perl基础的程序员和系统管理员阅读。对于高级perl程序员来讲,《perl进阶(第2版)》也是技术参考读物。

内容简介

本书是learning perl一书的进阶。学完本书之后,您可以使用perl语言的特性编写从简单脚本到大型程序在内的所有程序,正是perl语言的这些特性使其成为通用的编程语言。本书为读者深入介绍了模块、复杂的数据结构以及面向对象编程等知识。 本书每章的篇幅都短小精悍,读者可以在一到两个小时内读完,每章末尾的练习有助于您巩固在本章所学的知识。如果您已掌握了learning perl中的内容并渴望能更进一步,本书将向您讲授perl语言的绝大多数核心概念,以便在任何平台上编写出健壮的程序。 本书主题包括: 包和命名空间; 引用和作用域,包括正则表达式的引用; 操作复杂的数据结构; 面向对象编程; 编写和使用模块; 测试perl代码; 为cpan做出贡献。

目录

目录第1章 简介 11.1 背景知识 21.2 strict和warnings 21.3 perl v5.14 31.4 关于这些脚注 41.5 关于后续的练习 41.6 获取帮助的方式 51.7 如果是一个perl课程讲师 51.8 练习 6第2章 使用模块 72.1 标准发行版 72.2 探讨cpan 82.3 使用模块 92.4 功能接口 102.5 面向对象的接口 112.5.1 一个更典型的面向对象模块:math::bigint 122.5.2 更佳的模块输出 132.6 核心模块的内容 142.7 perl综合典藏网 152.8 通过cpan安装模块 162.8.1 cpanminus 162.8.2 手动安装模块 172.9 适时设定路径 182.10 在程序外部设定路径 202.10.1 使用perl5lib扩展@inc 202.10.2 在命令行扩展@inc目录 212.11 local::lib 212.12 练习 23第3章 中级基础 243.1 列表操作符 243.1.1 使用grep表达式过滤列表 253.1.2 使用map转换列表 273.2 使用eval捕获错误 283.3 用eval语句块动态编译代码 303.4 使用do语句块 313.5 练习 32第4章 引用简介 334.1 在多个数组上完成相同的任务 334.2 pegs:perl图形结构 354.3 对数组取引用 364.4 对数组引用进行解引用操作 384.5 去除大括号 404.6 修改数组 404.7 嵌套的数据结构 414.8 用箭头简化嵌套元素的引用 434.9 散列的引用 444.10 检查引用类型 474.11 练习 49第5章 引用和作用域 515.1 关于数据引用的更多信息 515.2 如果它曾是变量名将会怎样 525.3 引用计数和嵌套数据结构 535.4 当引用计数出现问题时 555.5 直接创建匿名数组 575.6 创建匿名散列 595.7 自动带入 615.8 自动带入和散列 635.9 练习 65第6章 操作复杂的数据结构 676.1 使用调试器查看复杂的数据 676.2 使用data::dumper模块查看复杂的数据 716.3 数据编组 746.3.1 使用storable模块对复杂数据排序 756.3.2 yaml模块 806.3.3 json模块 816.4 使用map和grep操作符 816.5 应用一点间接方法 816.6 选择和改变复杂数据 836.7 练习 84第7章 对子例程的引用 867.1 对命名子例程的引用 867.2 匿名子例程 907.3 回调 927.4 闭包 937.5 从一个子例程返回另一个子例程 947.6 作为输入参数的闭包变量 977.7 闭包变量作为静态局部变量 987.8 查询我们自己的身份 1017.8.1 令人着迷的子例程 1027.8.2 转储闭包 1057.9 练习 105第8章 文件句柄引用 1078.1 旧方法 1078.2 改进的方法 1088.3 指向字符串的文件句柄 1108.4 文件句柄集合 1118.5 io::handle模块和其他相应的模块 1128.5.1 io::file模块 1138.5.2 io::scalar模块 1148.5.3 io::tee模块 1158.5.4 io::pipe模块 1168.5.5 io::null模块和io::interactive模块 1178.6 目录句柄 1178.7 练习 118第9章 正则表达式引用 1209.1 正则表达式引用之前 1209.2 预编译模式 1229.2.1 正则表达式选项 1239.2.2 应用正则表达式引用 1239.3 作为标量的正则表达式 1249.4 建立正则表达式 1269.5 创建正则表达式的模块 1289.5.1 使用常见的模式 1289.5.2 组装正则表达式 1299.6 练习 130第10章 实用的引用技巧 13210.1更佳的输出 13210.2 用索引排序 13410.3 更为高效的排序 13510.4 施瓦茨变换 13610.5 使用施瓦茨变换实现多级排序 13710.6 递归定义的数据 13810.7 构建递归定义的数据 13910.8 显示递归定义的数据 14210.9 避免递归 14310.10 练习 146第11章 构建更大型的程序 14811.1 修改通用代码 14811.2 使用eval插入代码 14911.3 使用do语句 15011.4 使用require语句 15111.5 命名空间冲突的问题 15311.6 使用包作为命名空间分隔符 15411.7 package指令的作用域 15611.8 包和专门词汇 15711.9 练习 159第12章 创建你自己的发行版 16012.1 perl模块的两个构建系统 16012.1.1 在makefile.pl内部 16112.1.2 在build.pl文件内部 16212.2 我们的**个发行版 16312.2.1 h2xs工具 16312.2.2 module::starter模块 16412.2.3 定制模版 16512.3 在你的发行版内部 16512.3.1 meta文件 16712.3.2 添加额外的模块 16812.4 模块内部 16912.5 老式文档 17112.5.1 段落的pod命令 17212.5.2 pod段落 17212.5.3 pod格式标记 17312.5.4 检查pod格式 17412.6 模块中的代码 17412.7 模块构建的总结 17512.7.1 创建基于module::build模块的发行版 17512.7.2 创建extutils::makemaker发行版 17612.8 练习 176第13章 对象简介 17713.1 如果我们可以和动物对话 17713.2 介绍方法的调用箭头 17913.3 方法调用的额外参数 18013.4 调用第二个方法进一步简化 18113.5 关于@isa的几个注意事项 18313.6 方法重写 18413.7 开始从不同的地方查找 18613.8 使用super的实现方法 18613.9 要对@_做些什么 18713.10 我们在哪里 18713.11 牧场总结 18713.12 练习 189第14章 测试简介 19014.1 为什么需要测试 19014.2 perl的测试流程 19114.3 测试的艺术 19314.4 测试用具 19514.5 标准测试 19514.5.1 模块编译的检查 19614.5.2 模板测试 19814.5.3 测试pod 20014.6 添加**个测试 20114.7 测量测试覆盖率 20414.7.1 子例程覆盖率 20514.7.2 语句覆盖率 20514.7.3 分支覆盖率 20514.7.4 条件覆盖率 20614.8 练习 206第15章 带数据的对象 20815.1 马属于马类,各从其类是吗 20815.2 调用实例方法 21015.3 访问实例数据 21115.4 如何构建horse的实例 21115.5 继承构造函数 21215.6 编写能够使用类或实例作为参数的方法 21315.7 为方法添加参数 21315.8 更有趣的实例 21415.9 一匹不同颜色的马 21515.10 收回存款 21615.11 不要查看“盒子”里面的内容 21715.12 更快的setter和getter 21815.13 getter作为双倍的setter 21915.14 仅仅限制一个类方法或者实例方法 21915.15 练习 220第16章 一些高级对象主题 22116.1 通用方法 22116.2 为了更好的行为而测试对象 22216.3 *后的手段 22416.4 使用autoload创建访问器 22516.5 更容易地创建getter和setter 22616.6 多重继承 22816.7 练习 229第17章 exporter 23017.1 use语句在做什么 23017.2 使用expo
展开全部

相关资料

perl的面向对象机制是经典的“戏法”。它使用perl已有的一系列非面向对象特性,例如包、引用、散列、数组、子例程和模块,然后,虽然没有暗自使用其他特性,但还是设法构造出功能完整的对象、类和方法。看起来就像是突如其来生成的一样。 这是一个非常奇妙的技巧。这意味着你能够基于你已有的perl知识构建,并且按照你自己的方法很轻易地进入面向对象的perl开发,而不必先去征服新语法的“大山”或者探索新技巧的“海洋”。这也意味着你能够通过从已有的perl面向对象结构中逐步选取合适的结构来优化调整面向对象的perl,以满足你自己的需要。 但是还有一个问题:因为perl运用包、引用、散列、数组、子例程和模块作为它的面向对象机制的基础,也就是说,如果想要使用面向对象的perl,你就需要理解包、引用、散列、数组、子例程和模块这些内容。 然后还有一个小问题:学习曲线不可能消除,它只是倒退几步。 也就是说,我们到底需要掌握多少关于非面向对象的perl知识,才能够开始学习关于perl的所有面向对象知识呢? 本书给出了以上所有问题的答案。在后续内容中,randal通过近20年来使用perl的经历,以及近40年观看电视剧gilligan's island和mr. ed中的情节,来解释perl语言中每一个面向对象特性的基础。而且更好的是,我们将会确切地展示如何组合这些组件,以创建更有用的类和对象。 因此,如果你在使用perl的对象、引用和模块时感觉自己像gilligan一样,那么本书就是剧中教授会推荐给你的。 以上消息来源可靠。 —damian conway,2003年5月

作者简介

Randal L. Schwartz是一位Perl编程语言专家。除了写作了Learning Perl以及Programming Perl的前两版之外,他还是UNIX Review、Web Techniques、Sys Admin以及Linux Magazine的Perl专栏作家。他对十多本Perl图书以及200多篇杂志文章做出了贡献。Randal还经营着一家Perl培训和咨询公司(Stonehenge咨询服务公司),并且凭借着其技术技能、善于互动以及超高的人气被公认为Perl的发言人。他还是一位相当有水准的K歌歌手。 brain d foy自从1998年起就是Stonehenge咨询服务公司的一名讲师,自从他成为物理系的研究生起就是一名Perl用户,而且自从他拥有了电脑之后,就成了一名Mac的铁杆用户。他成立了Perl用户组——New York Perl Mongers,还成立了非盈利的Perl Mongers公司,该公司帮助形成了全球200多个Perl用户组。他是Perl核心文档perlfaq部分的维护人,还维护着CPAN的多个模块以及一些独立的脚本文件。他是The Perl Review(一家致力于Perl的杂志)的出版人,并经常在各种会议(包括Perl Conference、Perl University、MaccusEvans BioInformatics’ 02和YAPC)上发表演讲。他写作的Perl作品可以在O’Reilly Network、The Perl Journal、Dr. Dobbs、The Perl Review、use.perl.org以及多个Perl新闻组上找到。 Tom Phoenix自从1982年起投身于教育领域,在科学博物馆工作的13多年里,他经历了解剖、爆炸、与有趣的小动物共事,以及冒着火花的高压电等事情,然后从1996年起加入了Stonehenge咨询服务公司,并讲授Perl课程。从那时起,他去过了很多有趣的地方,没准你不久之后就会在Perl Mongers的会议上见到他。当他有空闲时,就会在comp.lang.perl.misc和comp.lang.perl.moderated新闻组上回答问题,而且为Perl的发展和使用贡献颇多。除了Perl、Perl破解以及相关主题的工作之外,Tom还在业余密码学和讲世界语方面投入了很多时间。Tom住在俄勒冈州波特兰市。

预估到手价 ×

预估到手价是按参与促销活动、以最优惠的购买方案计算出的价格(不含优惠券部分),仅供参考,未必等同于实际到手价。

确定
快速
导航