Logo
☆☆☆☆☆
0.0
Intermediate
35h

掌握现代Perl:编写高效且可维护的代码

现代 Perl 是一种编程理念,是一种使用 Perl 编程语言编写优秀软件的方法。它体现了高效 Perl 程序员如何写出强大、可维护、可扩展、简洁且高质量的代码。它充分利用了 Perl 丰富的免费软件库(CPAN)以及旨在提升开发效率的语言特性。 本课程将涵盖广泛的主题,包括 Perl 的哲学思想、语言基础、面向对象编程、异常处理、元编程以及测试等。你将通过大量实际案例和最佳实践获得动手经验,学习如何编写更易维护、符合 Perl 习惯、运行高效的代码,从而充分发挥 Perl 的全部潜力。 虽然你可以编写出高效的 Perl 程序,而不必完全利用 Perl 语言的所有功能,但完成本课程后,你将掌握全球 Perl 社区所创造、借鉴、改进并打磨出的各种编程思想与技巧。

17 Lessons
Included in Subscription Plan
Personalized Learning
Powered by AI
掌握现代Perl:编写高效且可维护的代码
现代 Perl 是一种编程理念,是一种使用 Perl 编程语言编写优秀软件的方法。它体现了高效 Perl 程序员如何写出强大、可维护、可扩展、简洁且高质量的代码。它充分利用了 Perl 丰富的免费软件库(CPAN)以及旨在提升开发效率的语言特性。 本课程将涵盖广泛的主题,包括 Perl 的哲学思想...

WHAT YOU'LL LEARN

对 Perl 设计理念的深入理解。

Content

17 Lessons • 0 Quizzes • 0 Challenges

现代 Perl 入门
  1. 1

    课程概览

  2. 2

    运行现代 Perl

Perl 的哲学
  1. 1

    Perldoc

  2. 2

    表达能力

  3. 3

    上下文

  4. 4

    空上下文、标量和列表上下文

  5. 5

    数值、字符串和布尔值上下文

  6. 6

    隐式概念:默认标量变量

  7. 7

    隐式概念:默认的数组变量

  8. 8

    练习:移除换行符

  9. 9

    解决方案:移除换行符

  10. 10

    测验:上下文与隐含含义

Perl 标识符和变量
  1. 1

    标识符

  2. 2

    变量

  3. 3

    值

  4. 4

    Unicode 和字符串

  5. 5

    隐式转换

  6. 6

    数字

  7. 7

    列表

  8. 8

    练习:数据格式化

  9. 9

    解决方案回顾:数据格式化

  10. 10

    测验:数据类型

控制流:条件语句与循环
  1. 1

    分支指令:if、unless、else、elsif

  2. 2

    三元条件运算符

  3. 3

    条件指令和上下文

  4. 4

    循环指令:foreach、for

  5. 5

    迭代:别名与作用域

  6. 6

    循环指令:C风格的 for 循环

  7. 7

    循环指令:while 和 until

  8. 8

    循环中的循环

  9. 9

    循环控制:next、last、redo、continue

  10. 10

    Switch 语句:given、when、default

  11. 11

    尾调用优化

  12. 12

    练习:在列表中查找一个数字

  13. 13

    解决方案回顾:在列表中查找一个数字

  14. 14

    练习:实现埃拉托斯特尼筛法

  15. 15

    解题回顾:实现埃拉托斯特尼筛法

  16. 16

    测验:控制流

数据结构
  1. 1

    标量

  2. 2

    数组

  3. 3

    数组操作与切片

  4. 4

    上下文与数组插值

  5. 5

    哈希表

  6. 6

    哈希键和值

  7. 7

    哈希切片

  8. 8

    哈希常用技巧

  9. 9

    强制类型转换

  10. 10

    练习:反转哈希表

  11. 11

    解决方案回顾:反转哈希表

  12. 12

    练习:数组中子数组的出现次数

  13. 13

    解决方案回顾:数组中子数组的出现次数

  14. 14

    测验:数据结构

包与引用
  1. 1

    包

  2. 2

    引用简介

  3. 3

    引用类型 I

  4. 4

    引用类型 II

  5. 5

    嵌套数据结构

  6. 6

    引用与嵌套数据结构

  7. 7

    练习:求嵌套数组所有元素的总和

  8. 8

    解决方案:求嵌套数组中所有元素的总和

  9. 9

    测验:包与引用

运算符
  1. 1

    操作符特性

  2. 2

    操作符类型

  3. 3

    练习:制作一个菱形

  4. 4

    解题回顾:制作一个菱形

  5. 5

    测验:运算符

函数
  1. 1

    声明和调用函数

  2. 2

    函数参数

  3. 3

    函数签名

  4. 4

    操作函数参数

  5. 5

    函数和命名空间

  6. 6

    报告错误

  7. 7

    高级函数

  8. 8

    陷阱与错误特性

  9. 9

    作用域的类型 I

  10. 10

    作用域的类型 II

  11. 11

    匿名函数

  12. 12

    闭包

  13. 13

    状态 vs 闭包与伪状态

  14. 14

    属性

  15. 15

    自动加载

  16. 16

    AUTOLOAD 的缺点 1. 性能开销:使用 AUTOLOAD 会引入额外的运行时开销,因为每次访问未定义的方法或属性时,都会触发 AUTOLOAD 处理程序。这会导致程序执行速度变慢,尤其是在频繁调用的情况下。 2. 调试困难:由于方法和属性是在运行时动态生成的,调试时难以追踪实际调用的代码路径。错误信息可能不够明确,定位问题更加困难。 3. 可读性和可维护性差:代码逻辑隐藏在 AUTOLOAD 处理程序中,其他开发者难以快速理解类的行为。这降低了代码的可读性和可维护性。 4. 容易出现意外行为:如果 AUTOLOAD 实现不当,可能会导致意外的函数或属性被创建,从而引发难以察觉的 bug。 5. 不符合显式编程原则:AUTOLOAD 使代码变得隐式,违背了“显式优于隐式”的编程理念,增加了代码的不确定性。 6. 与静态分析工具不兼容:许多静态分析工具(如 IDE 的代码检查、类型检查器)无法正确解析 AUTOLOAD 动态生成的内容,导致无法提供有效的代码提示或错误检测。 7. 依赖于命名约定:AUTOLOAD 通常依赖于特定的命名规则来决定如何处理请求,一旦规则变更或不一致,可能导致功能异常。 8. 难以测试:由于方法和属性是动态生成的,单元测试需要特殊处理,增加了测试的复杂度。 综上所述,虽然 AUTOLOAD 提供了灵活性,但在大多数情况下应谨慎使用,优先考虑显式定义方法和属性的方式。

  17. 17

    练习:批量计算器

  18. 18

    解决方案回顾:批量计算器

  19. 19

    练习:编写一个 AUTOLOAD 函数

  20. 20

    解决方案回顾:编写一个 AUTOLOAD() 函数

  21. 21

    测验:函数

正则表达式与匹配
  1. 1

    正则表达式与匹配入门

  2. 2

    正则表达式运算符

  3. 3

    量词

  4. 4

    贪婪性

  5. 5

    正则表达式锚点

  6. 6

    元字符

  7. 7

    字符类

  8. 8

    捕获

  9. 9

    分组与交替

  10. 10

    其他转义序列和断言

  11. 11

    正则表达式修饰符

  12. 12

    智能匹配

  13. 13

    练习:提取电子邮件地址

  14. 14

    解决方案回顾:提取电子邮件地址

  15. 15

    练习:格式化数据

  16. 16

    解决方案回顾:格式化数据

  17. 17

    测验:正则表达式与匹配

对象
  1. 1

    对象简介

  2. 2

    类和方法

  3. 3

    类属性

  4. 4

    封装

  5. 5

    多态性

  6. 6

    角色

  7. 7

    继承

  8. 8

    重写方法

  9. 9

    Moose 和 Perl 面向对象编程

  10. 10

    受祝福的引用

  11. 11

    方法查找与继承

  12. 12

    反思

  13. 13

    高级面向对象 Perl

  14. 14

    练习:实现继承

  15. 15

    解决方案回顾:实现继承

  16. 16

    测验:对象

风格与效果
  1. 1

    在 Perl 中编写优质代码

  2. 2

    编写可维护的 Perl

  3. 3

    编写符合习惯的 Perl

  4. 4

    编写高效的 Perl 代码

  5. 5

    异常

  6. 6

    异常的注意事项和内置异常

  7. 7

    编译指示

  8. 8

    练习:异常处理

  9. 9

    解决方案回顾:异常处理

  10. 10

    测验:风格与效率

管理真实程序
  1. 1

    测试

  2. 2

    更好的测试比较与组织

  3. 3

    处理警告

  4. 4

    打开文件

  5. 5

    读取和写入文件

  6. 6

    特殊文件处理变量

  7. 7

    目录和路径

  8. 8

    文件操作

  9. 9

    模块

  10. 10

    分发包

  11. 11

    通用包

  12. 12

    代码生成

  13. 13

    编译时操作

  14. 14

    重载

  15. 15

    污点

  16. 16

    练习:按句子反转文件

  17. 17

    解决方案回顾:按句子反转文件

  18. 18

    测验:真实程序的管理

Perl 语法之外
  1. 1

    惯用语:第一部分

  2. 2

    惯用语:第二部分

  3. 3

    全局变量

  4. 4

    测验:Perl 模式与惯用法

应避免的 Perl 写法
  1. 1

    裸字

  2. 2

    间接宾语

  3. 3

    原型

  4. 4

    原型的问题与用途

  5. 5

    方法-函数等价性

  6. 6

    绑定

  7. 7

    测验:应避免的内容

Perl 及其社区
  1. 1

    社区与开发网站

  2. 2

    CPAN

  3. 3

    CPAN 安装

Perl 的下一步学习
  1. 1

    有用的内置模块

  2. 2

    接下来是什么?

  3. 3

    恭喜!

附录
  1. 1

    Perl 测试模块

Certificate of Completion

Showcase your accomplishment by sharing your certificate of completion.

Course Author:Anonymous User

Reviews

Read reviews from students who have taken this course and share your own experience.

Reviews & Comments (0)