基本信息
源码名称:Perl语言入门.pdf
源码大小:1.13M
文件格式:.pdf
开发语言:Perl
更新时间:2021-07-29
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 4 元×
微信扫码支付:4 元
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
目 录 前 言:..................................................................................................................................................................................................8 第一章 概 述 ...............................................................................................................................................................................................9 1.1 问题和解答 .....................................................................................................................................................................................9 1.1.1 本书适合你吗? ........................................................................................................................................................................................9 1.1.2 为什么如此多的脚注?.............................................................................................................................................................................9 1.1.3 练习题和解答呢? ..................................................................................................................................................................................10 1.1.4 习题前的数字是什么意思?................................................................................................................................................................... 10 1.1.5 如果我是 Perl 教师,怎么办呢? ..........................................................................................................................................................10 1.2 Perl 代表什么? ........................................................................................................................................................................ 11 1.2.1 Larry 为什么发明 Perl?.......................................................................................................................................................................11 1.2.2 为什么 Larry 不采用别的语言?............................................................................................................................................................ 11 1.2.3 Perl 容易学习吗?.................................................................................................................................................................................... 12 1.2.4 Perl 为什么如此流行?............................................................................................................................................................................13 1.2.5 Perl 正在发生怎样的事情?....................................................................................................................................................................13 1.2.6 Perl 擅长什么?........................................................................................................................................................................................ 13 1.2.7 Perl 不擅长什么?.................................................................................................................................................................................... 14 1.3 怎样获得 Perl? ..........................................................................................................................................................................14 1.3.1 什么 CPAN?........................................................................................................................................................................................... 14 1.3.2 怎样获得支持? ......................................................................................................................................................................................15 1.3.3 有其它的支持吗? ..................................................................................................................................................................................15 1.3.4 当发现 Perl 中有错误时,该怎么办? ..................................................................................................................................................16 1.4 怎样才能写一个 Perl 程序?......................................................................................................................................................16 1.4.1 一个简单的例子 ......................................................................................................................................................................................17 1.4.2 这个程序有些什么? .............................................................................................................................................................................. 18 1.4.3 怎样编译 Perl?........................................................................................................................................................................................ 19 1.5 快速了解 Perl ..............................................................................................................................................................................19 1.6 第六节 练习 .................................................................................................................................................................................20 第二章 标量数据.......................................................................................................................................................................................21 2.1 数字.............................................................................................................................................................................................. 21 2.1.1 所有数字内部的格式一致........................................................................................................................................................................21 2.1.2 浮点数 ...................................................................................................................................................................................................... 21 2.1.3 整数.......................................................................................................................................................................................................... 22 2.1.4 非十进制整数 ........................................................................................................................................................................................... 22 2.1.5 数字操作符............................................................................................................................................................................................... 23 2.2 字符串.......................................................................................................................................................................................... 23 2.2.1 单引号字符串 ........................................................................................................................................................................................... 24 2.2.2 双引号字符串 ........................................................................................................................................................................................... 24 2.3.3 字符串操作符 ........................................................................................................................................................................................... 25 2.2.4 数字和字符串之间的自动转换................................................................................................................................................................ 26 2.3 Perl 内嵌的警告(warnings).......................................................................................................................................................... 26 扫码可进资料分享群 Perl 语言入门(第四版) blei@163.com 3 / 201 9/21/2006 2.4 标量变量......................................................................................................................................................................................27 2.4.1 选择好的变量名 .......................................................................................................................................................................................28 2.4.2 标量赋值................................................................................................................................................................................................... 28 2.4.3 二元赋值操作符 ......................................................................................................................................................................................29 2.5 print 输出 ......................................................................................................................................................................................29 2.5.1 字符串中标量变量的内插........................................................................................................................................................................30 2.5.2 操作符优先级和结合性............................................................................................................................................................................31 2.5.3 比较运算符............................................................................................................................................................................................... 32 2.6 if 控制结构....................................................................................................................................................................................33 2.6.Boolean 值....................................................................................................................................................................................................33 2.7 用户输入......................................................................................................................................................................................34 2.8 chomp 操作....................................................................................................................................................................................35 2.9 while 控制结构..............................................................................................................................................................................35 2.10 undef 值 .......................................................................................................................................................................................36 2.1.1 defined 函数............................................................................................................................................................................37 2.1.2 练习........................................................................................................................................................................................37 第三章 列表和数组...................................................................................................................................................................................38 3.1 访问数组元素 ..............................................................................................................................................................................39 3.2 特殊的数组索引 ..........................................................................................................................................................................39 3.3 列表 ...............................................................................................................................................................................................40 3.3.1 qw 简写 ....................................................................................................................................................................................................41 3.4 列表赋值......................................................................................................................................................................................42 3.4.1 pop 和 push 操作.......................................................................................................................................................................................43 3.4.2 shift 和 unshift 操作..................................................................................................................................................................................44 3.5 将数组插入字符串 ....................................................................................................................................................................... 44 3.6 foreach 控制结构 ..........................................................................................................................................................................45 3.6.1 Perl 最常用的默认变量:$_....................................................................................................................................................................46 3.6.2 reverse 操作............................................................................................................................................................................................... 46 3.6.3 sort 操作....................................................................................................................................................................................................47 3.7 标量和列表上下文 ....................................................................................................................................................................... 47 3.7.1 在标量 Context 中使用 List-Producing 表达式 .......................................................................................................................................48 3.7.2 在列表 Context 中使用 Scalar-Producing 表达式....................................................................................................................................50 3.7.3 强制转换为标量 Context ......................................................................................................................................................................... 50 3.8<STDIN>在列表 Context 中.......................................................................................................................................................... 50 3.9 练习.............................................................................................................................................................................................. 51 第四章 子程序...........................................................................................................................................................................................53 4.1 定义一个子程序 ..........................................................................................................................................................................53 4.2 调用子程序..................................................................................................................................................................................54 4.3 返回值.......................................................................................................................................................................................... 54 4.4 参数(Arguments) ..........................................................................................................................................................................56 4.5 子程序中的私有变量 ..................................................................................................................................................................57 4.6 参数列表的长度 ........................................................................................................................................................................... 57 4.6.1 更好的&max 程序 ...................................................................................................................................................................................58 4.6.2 空参数列表............................................................................................................................................................................................... 59 扫码可进资料分享群 Perl 语言入门(第四版) blei@163.com 4 / 201 9/21/2006 4.7my 变量的注释...............................................................................................................................................................................59 4.8 使用 strict Pragma ........................................................................................................................................................................60 4.9 返回操作......................................................................................................................................................................................61 4.9.1 省略符号&............................................................................................................................................................................................... 62 4.10 非标量返回值 ............................................................................................................................................................................63 4.11 练习 .............................................................................................................................................................................................64 第五章 输入与输出...................................................................................................................................................................................65 5.1 从标准输入设备输入 ................................................................................................................................................................... 65 5.2 从<>输入......................................................................................................................................................................................66 5.3 调用参数 .......................................................................................................................................................................................68 5.4 输出到标准输出设备 ................................................................................................................................................................... 69 5.5 使用 printf 格式化输出................................................................................................................................................................. 71 5.5.1 数组和 printf .................................................................................................................................................................................................. 72 5.6 句柄 ...............................................................................................................................................................................................73 5.7 文件句柄的打开 ........................................................................................................................................................................... 74 5.7.1 Bad 文件句柄............................................................................................................................................................................................ 76 5.7.2 关闭文件句柄 ........................................................................................................................................................................................... 76 5.8 严重错误和 die ............................................................................................................................................................................77 5.8.1 警告信息和 warn ..................................................................................................................................................................................... 78 5.9 使用文件句柄 ...............................................................................................................................................................................78 5.9.1 改变默认的输出句柄 ...............................................................................................................................................................................79 5.10 重新打开文件句柄 ....................................................................................................................................................................79 5.11 练习 ............................................................................................................................................................................................ 80 第六章 哈 希............................................................................................................................................................................................ 81 6.1 什么是哈希? ...............................................................................................................................................................................81 6.1.1 为什么使用 Hash? ...................................................................................................................................................................................82 6.2 哈希元素的存取 ........................................................................................................................................................................... 84 6.2.1 作为整体的 hash .......................................................................................................................................................................................85 6.2.2 Hash 赋值.................................................................................................................................................................................................86 6.2.3 大箭头符号(=>)..................................................................................................................................................................................87 6.3 哈希函数 .......................................................................................................................................................................................87 6.3.1 keys 和 values 函数...................................................................................................................................................................................87 6.3.2 each 函数................................................................................................................................................................................................... 88 6.4 哈希的通常用法 ........................................................................................................................................................................... 89 6.4.1 exists 函数.................................................................................................................................................................................................90 6.4.2 delete 函数.................................................................................................................................................................................................90 6.4.3 hash 元素的内插.......................................................................................................................................................................................90 6.5 练习 ...............................................................................................................................................................................................91 第七章 正则表达式...................................................................................................................................................................................92 7.1 什么是正则表达式? ................................................................................................................................................................... 92 7.2 使用简单的模式 ........................................................................................................................................................................... 93 7.2.1 元字符 ...................................................................................................................................................................................................... 93 7.2.2 简单的量词 ..............................................................................................................................................................................................94 7.2.3 模式中的分组 ........................................................................................................................................................................................... 94 扫码可进资料分享群 Perl 语言入门(第四版) blei@163.com 5 / 201 9/21/2006 7.2.4 选择符 ...................................................................................................................................................................................................... 94 7.3 字符类 ...........................................................................................................................................................................................95 7.3.1 字符类的简写 ........................................................................................................................................................................................... 95 7.3.2 简写形式的补集 ......................................................................................................................................................................................96 7.4 练习 ...............................................................................................................................................................................................96 第八章 正则表达式的应用....................................................................................................................................................................... 98 8.1 使用 m//匹配................................................................................................................................................................................98 8.2 可选的修饰符 ...............................................................................................................................................................................98 8.2.1 不区分大小写:/i..................................................................................................................................................................................... 98 8.2.2 匹配任何字符:/s..................................................................................................................................................................................... 99 8.2.3 添加空格:/x............................................................................................................................................................................................ 99 8.2.4 将可选字符结合起来 ............................................................................................................................................................................100 8.2.5 其它选项.................................................................................................................................................................................................100 8.3 锚定 .............................................................................................................................................................................................100 8.3.1 词锚定 ....................................................................................................................................................................................................101 8.4 绑定操作符,=~ ........................................................................................................................................................................101 8.5 模式内的内插 ............................................................................................................................................................................102 8.6 匹配变量....................................................................................................................................................................................103 8.6.1 内存值的保存 ........................................................................................................................................................................................104 8.6.2 自动匹配变量.........................................................................................................................................................................................105 8.7 一般的数量词 ............................................................................................................................................................................. 106 8.8 优先级 .........................................................................................................................................................................................106 8.8.1 优先级练习.............................................................................................................................................................................................107 8.8.2 更多.........................................................................................................................................................................................................107 8.9 模式测试程序 ............................................................................................................................................................................107 8.10 练习 ...........................................................................................................................................................................................108 第九章 使用正则表达式处理文件.........................................................................................................................................................109 9.1 使用 s///进行替换 ....................................................................................................................................................................... 109 9.1.1 使用/g 进行全局替换 ............................................................................................................................................................................. 110 9.1.2 不同的分隔符 ......................................................................................................................................................................................... 110 9.1.3 可选的修饰符 ........................................................................................................................................................................................ 111 9.1.4 绑定操作 ................................................................................................................................................................................................ 111 9.1.5 大小写转换............................................................................................................................................................................................. 111 9.2split 操作 ...................................................................................................................................................................................... 112 9.3join 函数....................................................................................................................................................................................... 113 9.4 列表上下文中的 m// .................................................................................................................................................................. 114 9.5 更强大的正则表达式 ................................................................................................................................................................. 114 9.5.1 非贪婪的数量词 ..................................................................................................................................................................................... 115 9.5.2 匹配多行文本 ........................................................................................................................................................................................ 116 9.5.3 更新大量文件 ......................................................................................................................................................................................... 117 9.5.4 在命令行中进行修改 ............................................................................................................................................................................ 119 9.5.5 非捕捉用的括号 ....................................................................................................................................................................................120 9.6 练习 .............................................................................................................................................................................................121 第十章 更多控制结构............................................................................................................................................................................. 122 扫码可进资料分享群 Perl 语言入门(第四版) blei@163.com 6 / 201 9/21/2006 10.1unless 控制结构 ......................................................................................................................................................................... 122 10.1.1unless 和 else 语句一起使用 .................................................................................................................................................................122 10.2until控制结构 ............................................................................................................................................................................123 10.3 表达式修饰符 ........................................................................................................................................................................... 123 10.4The Naked Block 控制结构 ........................................................................................................................................................ 125 10.5 elsif 语句....................................................................................................................................................................................126 10.6 自增和自减 ...............................................................................................................................................................................126 10.6.1自动增量的值 .......................................................................................................................................................................................127 10.7for 控制结构...............................................................................................................................................................................128 10.7.1foreach 和 for 的关系.............................................................................................................................................................................130 10.8 循环控制 ...................................................................................................................................................................................130 10.8.1 last 操作.................................................................................................................................................................................................131 10.8.2 next 操作 ...............................................................................................................................................................................................131 10.8.3 redo 操作...............................................................................................................................................................................................132 10.8.4标签块 ...................................................................................................................................................................................................133 10.9 逻辑操作符 ...............................................................................................................................................................................134 10.9.1短路操作的值 .......................................................................................................................................................................................135 10.9.2三元操作符 ?: ......................................................................................................................................................................................135 10.9.3控制结构:使用部分求值的操作符....................................................................................................................................................136 10.10 练习 .........................................................................................................................................................................................138 第十一章 文件检验.................................................................................................................................................................................139 11.1 文件检测操作............................................................................................................................................................................139 11.2 stat 和 lstat 函数 ........................................................................................................................................................................142 11.3 localtime 函数............................................................................................................................................................................143 11.4 位操作........................................................................................................................................................................................ 144 11.4.1 使用位串 ...............................................................................................................................................................................................145 11.5 使用特殊的下划线文件句柄....................................................................................................................................................145 11.6 练习 ...........................................................................................................................................................................................146 第十二章 目录操作.................................................................................................................................................................................147 12.1 在目录树上移动 ....................................................................................................................................................................... 147 12.2 Globbing....................................................................................................................................................................................147 12.3 Globbing 的替换语法 ...............................................................................................................................................................148 12.4 目录句柄 ...................................................................................................................................................................................149 12.5 递归的目录列表 ....................................................................................................................................................................... 151 12.6 操作文件和目录 ....................................................................................................................................................................... 151 12.7 删除文件 ...................................................................................................................................................................................151 12.8 重命名文件 ...............................................................................................................................................................................152 12.9 连接和文件 ...............................................................................................................................................................................153 12.10 创建和删除目录 ..................................................................................................................................................................... 157 12.11 修改权限..................................................................................................................................................................................159 12.12 改变所有者 ............................................................................................................................................................................. 159 12.13 改变时间戳 ............................................................................................................................................................................. 159 12.14 练习 .........................................................................................................................................................................................160 第十三章 字符串和排序......................................................................................................................................................................... 161 扫码可进资料分享群 Perl 语言入门(第四版) blei@163.com 7 / 201 9/21/2006 13.1 使用索引寻找子串 ................................................................................................................................................................... 161 13.2 使用 substr操作子串................................................................................................................................................................ 162 13.3 使用 sprintf 格式化数据...........................................................................................................................................................163 13.3.1在“货币数字”中使用 sprintf............................................................................................................................................................164 13.4 高级排序 ...................................................................................................................................................................................165 13.4.1依据值对 Hash 进行排序 .....................................................................................................................................................................168 13.4.2对多个 keys 排序 ..................................................................................................................................................................................168 13.5 练习 ...........................................................................................................................................................................................169 第十四章 进程管理.................................................................................................................................................................................171 14.1 系统函数 ...................................................................................................................................................................................171 14.1.1避免 Shell..............................................................................................................................................................................................172 14.2exec 函数....................................................................................................................................................................................174 14.3 环境变量 ...................................................................................................................................................................................174 14.4 使用反引号捕捉输出 ...............................................................................................................................................................175 14.4.1在 List context 中使用反引号...............................................................................................................................................................177 14.5 像文件句柄那样处理 ...............................................................................................................................................................178 14.6 使用 fork....................................................................................................................................................................................179 14.7 发送和接收信号 ....................................................................................................................................................................... 180 14.8 练习 ...........................................................................................................................................................................................182 第十五章 PERL 模块................................................................................................................................................................................183 15.1 查找模块 ...................................................................................................................................................................................183 15.2 安装模块 ...................................................................................................................................................................................183 15.3 使用简单的模块 ....................................................................................................................................................................... 184 15.3.1. File::Basename 模块.........................................................................................................................................................................185 15.3.2.仅使用模块中的一些函数.................................................................................................................................................................186 15.3.3.File::Spec 模块...................................................................................................................................................................................187 15.3.4.CGI.pm ...............................................................................................................................................................................................188 15.3.5.数据库和 DBI .......................................................................................................................................................................................189 15.4 练习 ...........................................................................................................................................................................................190 第十六章 一些高级的 PERL 技术...........................................................................................................................................................191 16.1 利用 eval 捕获错误................................................................................................................................................................... 191 16.2 使用 grep 在列表得到元素 ......................................................................................................................................................193 16.3 使用 map 对列表项进行变换...................................................................................................................................................194 16.4 不用双引号的 hash keys...........................................................................................................................................................195 16.5Slices...........................................................................................................................................................................................195 16.5.1 Array Slice.............................................................................................................................................................................................197 16.5.2Hash Slice...............................................................................................................................................................................................198 16.6 练习 ...........................................................................................................................................................................................200 练习题答案 .............................................................................................................................................................................................. 201