zoukankan      html  css  js  c++  java
  • Perl进阶(第2版)

    Perl进阶(第2版)

    O’Reilly Media, Inc.介绍

    作者序(中文版)

    作者序

    本书结构

    本书的惯例

    代码示例的使用

    联系方式

    Safari®在线图书

    1 简介

    1.1 背景知识

    1.2 strict和warnings

    1.3 Perl v5.14

    关于版本的一个注解

    1.4 关于这些脚注

    1.5 关于后续的练习

    1.6 获取帮助的方式

    1.7 如果是一个Perl课程讲师

    1.8 练习

    2 使用模块

    2.1 标准发行版

    2.2 探讨CPAN

    2.3 使用模块

    2.4 功能接口

    选择需要导入的内容

    2.5 面向对象的接口

    2.5.1 一个更典型的面向对象模块:Math::BigInt
    2.5.2 更佳的模块输出

    2.6 核心模块的内容

    2.7 Perl综合典藏网

    2.8 通过CPAN安装模块

    2.8.1 CPANminus
    2.8.2 手动安装模块

    2.9 适时设定路径

    2.10 在程序外部设定路径

    2.10.1 使用PERL5LIB扩展@INC
    2.10.2 在命令行扩展@INC目录

    2.11 local::lib

    2.12 练习

    3 中级基础

    3.1 列表操作符

    3.1.1 使用grep表达式过滤列表
    3.1.2 使用map转换列表

    3.2 使用eval捕获错误

    3.3 用eval语句块动态编译代码

    3.4 使用do语句块

    3.5 练习

    4 引用简介

    4.1 在多个数组上完成相同的任务

    4.2 PeGS:Perl图形结构

    4.3 对数组取引用

    4.4 对数组引用进行解引用操作

    4.5 去除大括号

    4.6 修改数组

    4.7 嵌套的数据结构

    4.8 用箭头简化嵌套元素的引用

    4.9 散列的引用

    4.10 检查引用类型

    4.11 练习

    5 引用和作用域

    5.1 关于数据引用的更多信息

    5.2 如果它曾是变量名将会怎样

    5.3 引用计数和嵌套数据结构

    5.4 当引用计数出现问题时

    5.5 直接创建匿名数组

    5.6 创建匿名散列

    5.7 自动带入

    5.8 自动带入和散列

    5.9 练习

    6 操作复杂的数据结构

    6.1 使用调试器查看复杂的数据

    6.2 使用Data::Dumper模块查看复杂的数据

    其他形式的转储程序

    6.3 数据编组

    6.3.1 使用Storable模块对复杂数据排序
    6.3.2 YAML模块
    6.3.3 JSON模块

    6.4 使用map和grep操作符

    6.5 应用一点间接方法

    6.6 选择和改变复杂数据

    6.7 练习

    7 对子例程的引用

    7.1 对命名子例程的引用

    7.2 匿名子例程

    7.3 回调

    7.4 闭包

    7.5 从一个子例程返回另一个子例程

    7.6 作为输入参数的闭包变量

    7.7 闭包变量作为静态局部变量

    state变量

    7.8 查询我们自己的身份

    7.8.1 令人着迷的子例程
    7.8.2 转储闭包

    7.9 练习

    8 文件句柄引用

    8.1 旧方法

    8.2 改进的方法

    8.3 指向字符串的文件句柄

    逐行处理字符串

    8.4 文件句柄集合

    8.5 IO::Handle模块和其他相应的模块

    8.5.1 IO::File模块
    8.5.2 IO::Scalar模块
    8.5.3 IO::Tee模块
    8.5.4 IO::Pipe模块
    8.5.5 IO::Null模块和IO::Interactive模块

    8.6 目录句柄

    目录句柄引用

    8.7 练习

    9 正则表达式引用

    9.1 正则表达式引用之前

    9.2 预编译模式

    9.2.1 正则表达式选项
    9.2.2 应用正则表达式引用

    9.3 作为标量的正则表达式

    9.4 建立正则表达式

    9.5 创建正则表达式的模块

    9.5.1 使用常见的模式
    9.5.2 组装正则表达式

    9.6 练习

    10 实用的引用技巧

    10.1 更佳的输出

    10.2 用索引排序

    10.3 更为高效的排序

    10.4 施瓦茨变换

    10.5 使用施瓦茨变换实现多级排序

    10.6 递归定义的数据

    10.7 构建递归定义的数据

    10.8 显示递归定义的数据

    10.9 避免递归

    广度优先方案

    10.10 练习

    11 构建更大型的程序

    11.1 修改通用代码

    11.2 使用eval插入代码

    11.3 使用do语句

    11.4 使用require语句

    11.5 命名空间冲突的问题

    11.6 使用包作为命名空间分隔符

    11.7 Package指令的作用域

    11.8 包和专门词汇

    包语句块

    11.9 练习

    12 创建你自己的发行版

    12.1 Perl模块的两个构建系统

    12.1.1 在Makefile.PL内部
    12.1.2 在Build.PL文件内部

    12.2 我们的第一个发行版

    12.2.1 h2xs工具
    12.2.2 Module::Starter模块
    12.2.3 定制模版

    12.3 在你的发行版内部

    12.3.1 META文件
    12.3.2 添加额外的模块

    12.4 模块内部

    12.5 老式文档

    12.5.1 段落的Pod命令
    12.5.2 Pod段落
    12.5.3 Pod格式标记
    12.5.4 检查Pod格式

    12.6 模块中的代码

    12.7 模块构建的总结

    12.7.1 创建基于Module::Build模块的发行版
    12.7.2 创建ExtUtils::Makemaker发行版

    12.8 练习

    13 对象简介

    13.1 如果我们可以和动物对话……

    13.2 介绍方法的调用箭头

    13.3 方法调用的额外参数

    13.4 调用第二个方法进一步简化

    13.5 关于@ISA的几个注意事项

    13.6 方法重写

    13.7 开始从不同的地方查找

    13.8 使用SUPER的实现方法

    13.9 要对@_做些什么

    13.10 我们在哪里

    13.11 牧场总结

    13.12 练习

    14 测试简介

    14.1 为什么需要测试

    14.2 Perl的测试流程

    通用测试协议

    14.3 测试的艺术

    一个测试示例

    14.4 测试用具

    14.5 标准测试

    14.5.1 模块编译的检查
    14.5.2 模板测试
    14.5.3 测试Pod

    14.6 添加第一个测试

    14.7 测量测试覆盖率

    14.7.1 子例程覆盖率
    14.7.2 语句覆盖率
    14.7.3 分支覆盖率
    14.7.4 条件覆盖率

    14.8 练习

    15 带数据的对象

    15.1 马属于马类,各从其类是吗

    15.2 调用实例方法

    15.3 访问实例数据

    15.4 如何构建Horse的实例

    15.5 继承构造函数

    15.6 编写能够使用类或实例作为参数的方法

    15.7 为方法添加参数

    15.8 更有趣的实例

    15.9 一匹不同颜色的马

    15.10 收回存款

    15.11 不要查看“盒子”里面的内容

    15.12 更快的setter和getter

    15.13 getter作为双倍的setter

    15.14 仅仅限制一个类方法或者实例方法

    15.15 练习

    16 一些高级对象主题

    16.1 通用方法

    16.2 为了更好的行为而测试对象

    16.3 最后的手段

    16.4 使用AUTOLOAD创建访问器

    16.5 更容易地创建getter和setter

    16.6 多重继承

    16.7 练习

    17 Exporter

    17.1 use语句在做什么

    17.2 使用Exporter模块导入子例程

    17.3 @EXPORT和@EXPORT_OK

    17.4 使用%EXPORT_TAGS分组

    17.5 定制导入例程

    17.6 练习

    18 对象析构

    18.1 清理

    18.2 嵌套对象析构

    18.3 终结一个“死去”的Horse类

    18.4 间接对象表示法

    18.5 子类中的额外实例

    18.6 使用类变量

    18.7 削弱参数

    18.8 练习

    19 Moose简介

    19.1 用Moose模块创建之前的Animal模块

    19.1.1 使用“角色”替换“继承”
    19.1.2 默认值
    19.1.3 约束值
    19.1.4 封装方法
    19.1.5 只读属性

    19.2 改进的赛马类

    19.3 进一步学习

    19.4 练习

    20 高级测试

    20.1 跳过测试

    20.2 测试面向对象特性

    20.3 分组测试

    20.4 测试大型字符串

    20.5 测试文件

    20.6 测试STDOUT和STDERR

    20.7 使用模拟对象

    20.8 编写我们自己的Test::*测试模块

    20.9 练习

    21 贡献到CPAN

    21.1 Perl综合典藏网

    21.2 准备阶段

    21.3 PAUSE的工作方式

    21.3.1 索引器
    21.3.2 模块维护人员

    21.4 在我们开始工作之前

    21.5 准备发行版

    21.5.1 创建或更新README
    21.5.2 检查构建文件
    21.5.3 更新清单
    21.5.4 添加版本字符串
    21.5.5 测试发行版

    21.6 上传发行版

    21.7 在多个平台上测试

    21.8 发布模块

    21.9 练习

    附录 练习答案

    1答案

    练习1
    练习2

    2答案

    练习1
    练习2
    练习3

    3答案

    练习1
    练习2

    4答案

    练习1
    练习2
    练习3

    5答案

    练习1
    练习2
    练习3

    6答案

    练习1
    练习2
    7答案
    练习1

    8答案

    练习1
    练习2
    练习3

    9答案

    练习1
    练习2
    练习3

    10答案

    练习1
    练习2
    练习3
    练习4
    练习5

    11答案

    练习1
    练习2

    12答案

    练习1
    练习2
    练习3

    13答案

    练习1
    练习2
    练习3

    14答案

    练习1
    练习2
    练习3
    练习4
    练习5

    15答案

    练习1

    16答案

    练习1
    练习2

    17答案

    练习1
    练习2
    练习3

    18答案

    练习1

    19答案

    练习1
    练习2

    20答案

    练习1
    练习2

    21答案

    练习1
    练习2
    练习3
    练习4
    练习5
    练习6
    练习7

    作者介绍

    封面图片说明

    欢迎来到异步社区!

    异步社区的来历

    社区里都有什么?

    购买图书
    下载资源
    与作译者互动

    灵活优惠的购书

    纸电图书组合购买

    社区里还可以做什么?

    写作
    会议活动早知道

    加入异步

    思维导图

    Perl进阶(第2版)

    防止博客图床图片失效,防止图片源站外链:

    http://www.processon.com/chart_image/5e5b3d27e4b0d4dc8776d940.png)

    思维导图在线编辑链接:

    https://www.processon.com/view/5e5b3d27e4b0d4dc8776d93d

  • 相关阅读:
    【QA3】apache2启动失败问题
    查看OS位数
    软件测试开发 SDET
    【QA1】mysql下max_connections问题
    Js 四舍五入
    word中如何设置不连续页码 (转)
    隐藏select边框及下接箭头方法
    where 与 having 的区别
    asp.net 浏览器标题栏加入图标 方法
    AjaxControlToolkit CollapsiblePanelExtender用法
  • 原文地址:https://www.cnblogs.com/jingle1267/p/13098566.html
Copyright © 2011-2022 走看看