序
前言
第1章 Perl语言基础 1
1.1 准备工作 1
1.1.1 安装环境 1
1.1.2 选择编辑器 2
1.1.3 查阅官方文档 3
1.1.4 运行本书中的程序 3
1.2 初识命令行参数 4
1.2.1 标量 7
1.2.2 数组 8
1.2.3 循环结构for 9
1.3 改进命令行参数 10
1.3.1 散列 13
1.3.2 判断结构if 14
1.3.3 “真”与“假” 15
1.4 继续改进命令行参数 16
1.4.1 数组的散列 20
1.4.2 散列的散列 21
1.5 完成命令行参数 22
1.5.1 引用 25
1.5.2 子例程 27
1.5.3 模块 29
第2章 与操作系统交互 34
2.1 识别文件或目录 34
2.2 读取文件 35
2.3 写入文件 37
2.4 读取目录 39
2.5 创建目录 39
2.6 执行操作系统命令 40
2.7 获取系统命令的输出 41
2.8 获取和设置环境变量 41
2.9 读取命令行参数 41
第3章 正则表达式 45
3.1 匹配的基本过程 46
3.2 匹配 48
3.2.1 普通字符 48
3.2.2 元字符 49
3.2.3 反斜杠家族 54
3.2.4 修饰符 56
3.2.5 内插变量 57
3.3 分组和捕获 59
3.3.1 分组并捕获 59
3.3.2 匹配的特点 62
3.3.3 分组不捕获 64
3.3.4 分组捕获并反向引用 65
3.4 替换 66
3.4.1 修饰符 67
3.4.2 界定符 67
3.4.3 不改变原变量 67
第4章 模块的改进 68
4.1 参数值存为标量 68
4.2 增加data_type的类型识别 69
4.3 提供默认值 70
4.4 新增子例程 72
4.4.1 把文件读取到数组中 72
4.4.2 把数组写入文件中 73
4.4.3 新建目录 73
4.5 参数值可以短划线开头 74
第5章 模拟IC电路仿真实践 75
5.1 模拟IC电路设计流程简介 75
5.2 PVT仿真的过程 76
5.3 定义PVT仿真程序的功能 77
5.4 程序的主体 79
5.5 各子例程 81
5.5.1 define_opt_rule 81
5.5.2 run_pvt 82
5.5.3 generate_netlist 83
5.5.4 run_sim 84
5.5.5 get_sim_result 85
5.5.6 generate_report 86
5.6 补充说明 86
第6章 版图设计实践 88
6.1 版图设计流程简介 88
6.2 DRC程序的功能定义和参数设计 89
6.3 程序的主体 90
6.4 各子例程 93
6.4.1 prepare_run_dir 93
6.4.2 export_gds 94
6.4.3 prepare_drc_rule 95
6.4.4 replace_array 96
6.4.5 get_match_word 97
6.4.6 run_drc 98
6.4.7 report_result 99
6.5 补充说明 99
第7章 数字IC电路设计实践 101
7.1 Verilog连接程序的功能定义和参数设计 101
7.2 程序的主体 104
7.3 各子例程 106
7.3.1 read_f?ile_list 106
7.3.2 read_verilog_f?ile 107
7.3.3 con_top_verilog 109
7.3.4 generate_lines 111
7.3.5 output_verilog 113
7.4 补充说明 115
第8章 提升代码质量 116
8.1 正确的代码 116
8.1.1 use strict 116
8.1.2 use warnings 119
8.1.3 程序的结构 120
8.1.4 轻度debug 122
8.2 好看的代码 123
8.2.1 缩进和大括号 123
8.2.2 断行 125
8.2.3 注释 126
8.2.4 POD 127
8.3 中文处理 129
8.3.1 常量 130
8.3.2 变量名 130
8.3.3 文件的内容 131
8.4 递归 132
8.5 监控长时间运行的任务 134
8.6 杂项 145
8.6.1
8.6.2 Schwartz变换 147
8.6.3 其他运算符 147
8.6.4 非十进制数处理 150
8.7 更多阅读推荐 153
第9章 特殊名称、常用函数与模块 156
9.1 特殊名称 156
9.1.1 $0 156
9.1.2 @ARGV 157
9.1.3 $_ 157
9.1.4 @_ 160
9.1.5 $a和$b 161
9.1.6 $. 161
9.1.7 %ENV 161
9.1.8 $$ 162
9.1.9 $! 162
9.1.10 STDERR、STDIN、STDOUT 162
9.2 常用函数 163
9.2.1 数学计算 164
9.2.2 标量操作 166
9.2.3 列表和数组处理 171
9.2.4 仅数组处理(不能处理列表) 174
9.2.5 散列处理 177
9.2.6 输入输出 179
9.2.7 文件(和目录)操作 193
9.2.8 流程控制 198
9.2.9 范围 201
9.2.10 时间处理 205
9.2.11 其他函数 206
9.3 常用模块 211
9.3.1 strict 211
9.3.2 warnings 214
9.3.3 parent 215
9.3.4 Benchmark 216
9.3.5 Cwd 218
9.3.6 Data::Dumper 219
9.3.7 Digest::MD5 220
9.3.8 File::Basename 221
9.3.9 Spreadsheet::XLSX 222