《Perl入门经典》PDF下载

  • 购买积分:18 如何计算积分?
  • 作  者:(美)坡著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2013
  • ISBN:9787302337232
  • 页数:608 页
图书介绍:本书面向初学者,涵盖了Perl语言的基本功能,包括文本和数据类型、使用数字、运算符和函数、变量、列表、哈希表、循环、输入和输出、面向对象编程、测试和调试、Perl Web编程应用等,十分易于初学者上手。

第1章 Perl简介 1

1.1 Perl的发展现状 2

1.2 获取Perl 2

1.2.1 在非Windows平台使用Perl∷perlbrew 3

1.2.2 使用Windows平台 5

1.3 Perl社区 6

1.3.1 IRC 7

1.3.2 PerlMonks 7

1.3.3 PerlMongers 8

1.3.4 StackOverflow 8

1.4 使用Perl文档 9

1.4.1 理解perldoc的结构 9

1.4.2 开始使用perldoc 10

1.4.3 使用教程和常见问题解答 10

1.4.4 使用perldoc-f 11

1.5 使用终端窗口 12

1.5.1 使用命令行 12

1.5.2 创建工作目录 13

1.6 创建“Hello,World!”程序 15

1.6.1 编写你的第一个程序 15

1.6.2 sbebang行 17

1.7 本章小结 18

第2章 理解CPAN 19

2.1 CPAN和metacpan 20

2.1.1 搜索和评价模块 21

2.1.2 下载和安装 22

2.2 cpan客户端 26

2.2.1 使用CPAN.pm客户端 26

2.2.2 使用cpanm客户端 27

2.2.3 ppm 28

2.2.4 CPAN∷Mini 28

2.3 本章小结 31

第3章 变量 33

3.1 何为程序设计 34

3.2 正式开始前的注意事项 34

3.2.1 strict、warnings及diagnostics 34

3.2.2 my函数 35

3.2.3 魔符 36

3.2.4 标识符 36

3.3 标量 37

3.3.1 字符串 38

3.3.2 数字 41

3.4 数组 43

3.4.1 分解代码 43

3.4.2 访问元素 44

3.4.3 对数组进行迭代 46

3.5 哈希表 47

3.5.1 访问元素 47

3.5.2 对哈希表进行迭代 48

3.5.3 对哈希增加数据 48

3.6 切片 50

3.6.1 数组切片 50

3.6.2 哈希切片 50

3.7 上下文 51

3.7.1 标量上下文 51

3.7.2 列表上下文 52

3.8 作用域 54

3.8.1 my变量 55

3.8.2 包变量 56

3.9 strict、warnings和diagnostics 59

3.9.1 strict 60

3.9.2 warnings 60

3.9.3 diagnostics 61

3.9.4 在没有网络的情况下工作 62

3.10 Perl的内置变量 64

3.10.1 $_ 64

3.10.2 %ENV 65

3.10.3 @ARGV 65

3.10.4 其他的特殊变量 65

3.11 本章小结 66

第4章 数据处理 69

4.1 使用标量 70

4.1.1 字符串处理 71

4.1.2 使用字符串操作符 78

4.1.3 Scalar∷Util 81

4.1.4 数值型内置函数或操作符 81

4.1.5 位操作符 86

4.1.6 了解布尔操作 86

4.1.7 赋值操作符 90

4.1.8 优先级和关联性 91

4.2 数组和列表函数 93

4.2.1 内置数组函数 93

4.2.2 List∷Util 97

4.3 内置的哈希函数 97

4.3.1 delete() 97

4.3.2 exist() 98

4.3.3 key() 98

4.3.4 values() 98

4.3.5 each() 98

4.4 作用域关键字 99

4.4.1 my() 100

4.4.2 local() 100

4.4.3 our() 100

4.4.4 state() 101

4.5 本章小结 101

第5章 流程控制 103

5.1 使用if语句 103

5.1.1 理解基本的条件语句 104

5.1.2 else/elsif/unless 105

5.1.3 三元操作符?: 109

5.2 for/foreach循环 110

5.2.1 数组 110

5.2.2 列表 112

5.2.3 C语言风格 113

5.3 使用while或until循环 118

5.3.1 列表 119

5.3.2 内置函数:last()、next()、redo()和continue() 120

5.3.3 标签 122

5.4 语句修饰符 123

5.4.1 语句修饰符的类型 123

5.4.2 do while或do until 124

5.5 given/when语句 126

5.5.1 基本语法 126

5.5.2 Switch模块 128

5.6 本章小结 128

第6章 引用 131

6.1 关于引用的基础知识 131

6.1.1 数组引用 132

6.1.2 哈希引用 133

6.1.3 匿名引用 134

6.1.4 其他引用 136

6.2 使用引用 139

6.2.1 调试 139

6.2.2 复制 141

6.2.3 切片 144

6.3 本章小结 145

6.4 练习 145

第7章 子程序 147

7.1 子程序的语法 148

7.1.1 参数处理 148

7.1.2 多重参数 149

7.1.3 命名参数 150

7.1.4 别名 152

7.1.5 状态变量(5.10之前版本和5.10之后版本) 153

7.1.6 传递列表、哈希或哈希引用? 154

7.2 返回数据 157

7.2.1 返回真/假 157

7.2.2 返回单值或多值 158

7.2.3 wantarray函数 159

7.3 错误 160

7.3.1 注意!终止程序 161

7.3.2 carp和croak 161

7.3.3 eval 162

7.3.4 evalGotchas 164

7.3.5 Try∷Tiny 165

7.4 子程序引用 165

7.4.1 已有的子程序 166

7.4.2 匿名子程序 166

7.4.3 闭包 166

7.5 原型 169

7.5.1 参数强制 169

7.5.2 更多原型技巧 171

7.5.3 仿造内置函数 172

7.5.4 前置声明 174

7.5.5 原型总结 175

7.6 递归 177

7.6.1 基本递归 177

7.6.2 分治法 178

7.6.3 记忆子程序 179

7.7 注意事项 183

7.7.1 参数别名 183

7.7.2 作用域问题 183

7.7.3 功能过多 184

7.7.4 参数过多 184

7.8 本章小结 184

第8章 正则表达式 187

8.1 基本匹配 187

8.1.1 限定符 189

8.1.2 转义序列 191

8.1.3 提取数据 193

8.1.4 修饰符和锚字符 195

8.1.5 字符类 197

8.1.6 分组 198

8.2 高级匹配 201

8.2.1 替换 201

8.2.2 向前查找/向后查找锚位 201

8.2.3 命名的子表达式(需Perl 5.10或更高版本) 203

8.3 常见的正则表达式问题 206

8.3.1 Regexp∷Common 206

8.3.2 E-mail地址 207

8.3.3 HTML 207

8.4 本章小结 209

第9章 文件与目录 213

9.1 基本的文件处理方法 214

9.1.1 打开并读取文件 214

9.1.2 文件测试操作符 220

9.1.3 菱形操作符 222

9.1.4 临时文件 223

9.1.5 DATA文件 223

9.1.6 binmode 225

9.2 目录 227

9.2.1 读取目录 227

9.2.2 文件名代换 227

9.3 Unicode 228

9.3.1 Unicode的概念 229

9.3.2 两条简单的规则 229

9.3.3 一些复杂的规则 232

9.4 本章小结 244

第10章 sort、map和grep 247

10.1 基本排序 248

10.1.1 按字母顺序排序 248

10.1.2 按数字顺序排序 249

10.1.3 反向排序 249

10.1.4 复杂的排序条件 250

10.1.5 编写一个排序子程序 251

10.1.6 排序和Unicode码 252

10.2 map函数和grep函数 256

10.2.1 使用grep函数 256

10.2.2 使用map函数 261

10.2.3 别名问题 263

10.2.4 关于实现过多功能 264

10.2.5 关于编写精巧的代码 265

10.3 汇总 265

10.3.1 Schwartzian变换(也就是修饰、排序以及去除修饰) 266

10.3.2 Guttman-Rosler变换 267

10.4 本章小结 268

第11章 包和模块 271

11.1 名称空间和包 272

11.1.1 use和require 276

11.1.2 包变量 278

11.1.3 版本号 281

11.2 其他包中的子程序 281

11.2.1 导出 281

11.2.2 命名惯例 284

11.3 BEGIN、UNITCHECK、CHECK、INIT和END 288

11.3.1 BEGIN模块 289

11.3.2 END块 290

11.3.3 INIT、CHECK和UNITCHECK块 290

11.4 置标语言(POD) 291

11.4.1 文档结构 293

11.4.2 标题 293

11.4.3 段落 293

11.4.4 列表 294

11.4.5 字面段落 294

11.4.6 其他方面 295

11.5 创建与安装模块 296

11.5.1 创建一个简单的模块 296

11.5.2 Makefile.PL还是Module∷Build? 301

11.6 本章小结 301

第12章 面向对象的Perl 303

12.1 以私人买手AEVAR为例讲解什么是对象 304

12.2 Perl OO的三条规则 304

12.2.1 类就是包 305

12.2.2 对象就是知道其所属类的引用 306

12.2.3 方法就是子程序 308

12.3 关于对象的另一种观点 320

12.3.1 使用TV∷Episode 320

12.3.2 子类化 323

12.3.3 使用TV∷Episode∷Broadcast 323

12.3.4 类数据和实例数据 327

12.4 简单回顾 329

12.4.1 重载对象 329

12.4.2 使用UNIVERSAL 332

12.5 了解私有方法 335

12.6 错误陷阱 340

12.6.1 非必需的方法 340

12.6.2 “内部接触” 340

12.6.3 多继承 341

12.7 本章小结 343

第13章 Moose 345

13.1 了解基本Moose语法 346

13.2 使用属性 348

13.3 使用构造函数 351

13.3.1 BUILDARGS 351

13.3.2 BUILD 352

13.4 了解继承 353

13.5 谨慎使用Moose 354

13.6 高级Moose语法 358

13.6.1 使用类型约束 358

13.6.2 使用方法修改器 361

13.6.3 了解和使用角色 364

13.6.4 探讨MooseX 368

13.6.5 重写Television∷Episode 370

13.7 Moose最佳实践 376

13.7.1 使用namespace∷autoclean并把类设为不可变的 376

13.7.2 绝不重写new() 376

13.7.3 始终调用父类的BUILDARGS方法 376

13.7.4 如果属性是非必需的,就提供默认值 376

13.7.5 默认只读 377

13.7.6 把自定义类型置于单独模块中并为它们指定名称空间 377

13.7.7 别使用多重继承 377

13.7.8 始终同时消费所有角色 377

13.8 本章小结 378

第14章 测试 381

14.1 基本测试 382

14.1.1 使用Test∷More 382

14.1.2 编写测试 384

14.1.3 了解prove实用工具 385

14.2 了解Test∷More的一些测试函数 386

14.2.1 使用ok 386

14.2.2 使用is 387

14.2.3 使用like 389

14.2.4 使用is_deeply 390

14.2.5 使用SKIP 391

14.2.6 使用TODO 391

14.2.7 使用eval{} 392

14.2.8 使用use_ok和require_ok 393

14.2.9 使用其他各类测试函数 393

14.3 使用其他一些测试模块 397

14.3.1 使用Test∷Differenoes 397

14.3.2 使用Test∷Exception 399

14.3.3 使用Test∷Warn 400

14.3.4 使用Test∷Most 400

14.4 了解xUnit风格的测试 401

14.4.1 使用Test∷Class 401

14.4.2 基本测试类 403

14.4.3 扩展测试类 406

14.4.4 使用测试控制方法 410

14.4.5 调用父类的测试控制方法 412

14.5 本章小结 416

第15章 互联网 419

15.1 HTTP简介 420

15.1.1 Plack 421

15.1.2 Hello World程序 422

15.1.3 处理参数 427

15.1.4 模板 428

15.1.5 处理POST请求 433

15.1.6 会话 436

15.2 Web客户端 447

15.2.1 提取网页中的链接 448

15.2.2 提取网页中的注释 449

15.2.3 借助程序填写表单 450

15.3 本章小结 455

第16章 数据库 457

16.1 使用DBI 458

16.1.1 连接数据库 458

16.1.2 使用SQLite 460

16.1.3 使用DBD∷SQLite 460

16.2 选择基本的数据 465

16.2.1 使用SELECT语句 465

16.2.2 使用绑定参数 468

16.2.3 插入和更新数据 471

16.2.4 创建事务处理 472

16.2.5 错误处理 473

16.3 本章小结 473

第17章 使用其他外部工具 475

17.1 命令行 475

17.1.1 读取用户输入 476

17.1.2 处理命令行实参 478

17.1.3 perlrun 480

17.2 其他程序 485

17.2.1 运行外部程序 485

17.2.2 读取其他程序的输出 487

17.2.3 写入其他程序的输入 488

17.2.4 STDERR 490

17.3 本章小结 492

第18章 常见任务 495

18.1 使用CSV数据 496

18.1.1 读取CSV数据 497

18.1.2 写入CSV数据 498

18.2 理解基本的XML 499

18.2.1 读取XML数据 499

18.2.2 写入XML数据 503

18.3 日期处理 506

18.3.1 使用DateTime模块 507

18.3.2 使用Date∷Tiny模块和DateTime∷Tiny模块 507

18.4 理解你的程序 513

18.4.1 使用调试器 513

18.4.2 性能分析 519

18.4.3 Perl∷Critic模块 528

18.5 本章小结 531

第19章 进阶 533

19.1 接下来的事情 534

19.1.1 本书涵盖的内容 534

19.1.2 本书略而不谈的内容 534

19.2 了解对象-关系映射器 535

19.2.1 了解DBIx∷Class 536

19.2.2 了解DBIx∷Class的基本用法 536

19.2.3 了解ORM的优缺点 539

19.2.4 使用DBIx∷Class∷Schema∷Loader 544

19.3 使用Template Toolkit 545

19.3.1 使用模板的理由 545

19.3.2 Template Toolkit入门 546

19.4 使用Catalyst构建应用程序 554

19.4.1 MVC之美 554

19.4.2 设立Catalyst应用程序 555

19.4.3 使用Catalyst视图 560

19.4.4 使用Catalyst模型 562

19.4.5 使用Catalyst控制器 565

19.4.6 CRUD:创建、读取、更新和删除 566

19.5 本章小结 569

附录 习题答案 573