Perl学习笔记... 2
1. Perl简介... 2
2. 数据类型... 4
2.1概览... 4
2.2命名空间(Namespaces) 4
2.3标量(Scalars) 5
2.4数组(Arrays) 8
2.5关联数组(Hashes) 11
2.6引用(References) 12
2.6.1 Perl引用简介... 12
2.6.2 创建引用... 12
2.6.3 使用引用... 13
2.6.4 符号引用... 14
2.6.5 垃圾回收与弱引用... 15
2.7 数据结构... 16
2.7.1 Arrays of Arrays 16
2.7.2 Hash of Arrays 18
2.7.3 Arrays of Hashes 20
2.7.4 Hashes of Hashes 22
2.7.5 Hashes of Functions 24
3操作符(Operators)... 25
3.1 概述... 25
3.2 Perl操作符一览... 25
3.3 各种操作符使用说明... 27
3.3.1 项与左赋列表操作符... 27
3.3.2 箭头操作符... 27
3.3.3 自增自减... 27
3.3.4 乘方... 27
3.3.5 表意一元操作符... 28
3.3.6 捆绑操作符... 28
3.3.7 乘操作符... 28
3.3.8 加操作符... 28
3.3.9 移位操作符... 29
3.3.9 有名一元和文件测试操作符... 29
3.3.10 关系操作符... 30
3.3.11 位操作符... 31
3.3.12 C风格逻辑操作符... 31
3.3.13 范围操作符... 31
3.3.14 条件操作符... 31
3.3.14 赋值操作符... 32
3.3.15 逗号操作符... 32
3.3.16 逻辑and, or, not和xor操作符... 33
3.4 与C操作符的比较... 33
3.4.1 Perl操作符的特别之处... 33
3.4.1 C有Perl没有的操作符... 33
4. 语句... 33
4.1简单语句... 34
4.2复合语句... 34
4.2.1 条件语句(if/unless语句) 35
4.2.2 循环语句(while/until/for/foreach语句) 35
4.2.3 分支语句... 38
5. 子程序(函数)... 38
5.1子程序简介... 38
5.2 函数原型与属性... 40
5.3 Perl内部函数... 41
6. 文件、目录与I/O.. 42
6.1文件操作... 42
6.2 目录操作... 44
6.3 print/printf. 44
6.4 注意事项... 45
7. 模式匹配... 46
7.1模式匹配操作符简介... 46
7.2 模式修饰符... 47
7.3模式匹配操作符详解... 48
7.3.1 m//操作符(匹配) 48
7.3.2 s///操作符(替换) 49
7.3.3 tr///操作符(字译) 51
7.4元字符... 52
7.5常见问题的正则解决方案... 55
8. 面向对象编程... 55
8.1模块使用... 56
8.2对象使用... 56
9.Perl特殊变量... 58
10 Perl程序文档(POD) 60
11. Perl编程风格... 61
12. 参考文献... 62
学习笔记 简介
Perl一般被认为是Practical Extraction and Report Language(实用获取与报表语言)的缩写,是由C以及sed、awk、Unix shell及其它语言演化而来的一种语言。它由语言学家Larry Wall最初发明及实现。Perl是一种为扫描任意的文本文件,从这些文本文件中获取信息,基于这些信息打印报表而优化的语言。它也很适合于完成许多系统管理的任务。Perl是一种粘合性语言,旨在实用(易用、高效、完整)而不是漂亮(优美、小巧)。其吉祥物是骆驼,取其虽并不漂亮却任劳任怨、能干活之特点。
Perl不随意限制数据的大小,只要你有充足的内存。递归的深度也不受限制。关联数组使用可以根据需要扩展以避免性能衰退。Perl能利用复杂的模式匹配技巧来快速扫描大量数据。尽管善于处理文本,Perl也能处理二进制数据。
Perl 5增加了模块化处理、面向对象编程、引进引用以处理多维数组等复杂的数据结构、Unicode支持、多线程支持等功能,使得Perl成为一种更加完备强大的语言。(以上编译自Perl manpage的Perl语言简介)
Perl语言的座右铭是:There’s More Than One Way To Do It (TMTOWTDI,有多种方法可以完成一件事,或者“条条道路通北京”)。Perl是一种自然和智能语言,它能根据上下文环境解释执行,同时有大量省略写法。
如果你通常想使用sed、awk或sh来解决的问题,但是却发现它们的能力不够,或者想运行得更快一点,却不想傻傻地用C来写,Perl将是很好的选择。Perl擅长于文本处理和系统管理,不适合于实时嵌入式系统编程、操作系统底层开发(比如驱动程序开发)、复杂的多线