本次笔记针对 E 课网 k.lin 老师的 《 Perl 在芯片验证中的实践 》 感谢万分 !
tips:
-
编写脚本最好输出帮助信息–help message
防止自己时间久了忘记 , 或者方便其他用户使用
synatax
Scalar Data
标量的概念
在 Perl 中也有类似于 单数和复数 的区别 , 标量代表单件事物 。
- 标量可以是 ++ 字符串或者数字 ++
- 可以使用操作符对标量进行操作
数字
可以分成以下几种类型 :浮点数
34.3 ;
1.25e5 (==e 为 10 的指数 == )整数
145
1_231_123(== 允许使用下划线 同 Verilog==)非十进制整数
0255 (8 进制 255)
0xf8 (hex)
0b100_0010(binary)- 算术操作符
== 算数运算符同 Verilog==
注意 : ** 为乘幂
字符串
字符串分为两种形式 : “ 单引号 ” 和 “ 双引号 ” 字符串单引号中的字符串
- 除单引号和反斜线字符外 , 单引号内的所有字符都代表其本身 ( 同 shell)
- ” \ +’ ” 表示单引号
- ” \ + \ “ 表示反斜线
- “\n” 表示反斜线和 n 这两个字符
双引号中的字符串
- 反斜线字符是转义字符 , 可以用来表示控制字符
- \n 表示换行
- 双引号支持变量的内插
- 下面这 4 个字符在双引号内有特殊含义
** 如果要在双引号内使用该字符 , 需要加反斜线 \ 进行转义 –同 shell**$ 表示变量
@ 表示数组的开始
”
\
双引号中的字符串操作
-
拼接操作符 : .
拼接操作符用于将两个字符串连接起来
eg: “who” . “are” . “you?\n”
等价于 ” who are you ?\n”
2. 重复操作符 : X
该操作符会将左边的操作数与它本身进行连接 , 重复次数看右边的操作数
eg: “bag”x3
结果为 “bagbagbag”
Scalar Variable
标量变量的定义
标量变量以 $ 开头 , 后面接 Perl 标识符 ( 由字母 、 数字 、 下划线组成 , 但必须由字母或者下划线开始 ) —按 : 那不就是说标识符不能以数字开始
要慎重使用 perl 默认的变量
perl 的一些特殊的内置变量:
$n包含上次匹配的第n个字符串
$_ 默认输入和模式匹配内容 —按:就是没有使用变量就是使用的默认变量
$$ 运行当前Perl 脚本的进程号—PID
$@ 命令eval的错误消息,如果为空,则表示eval 命令执行成功
$? 进程结束的状态
$! die命令抛出的信息(系统错误字符串)
@ARGV 传给Perl脚本的命令行参数列表都存在这样的数组里面
@_ 传给子程序的参数列表
@INC 在导入模块时需要搜索的目录列表 ,比如倒入一些第三方模块的时候,Perl 就会在这些数组里面去寻找这个模块(INCLUDE)
标量变量的赋值
$value = 5;
双目赋值操作符
value= v a l u e = value + 3 ;
equal: $value += 3;
==note== 拼接运算符也可以用双目赋值操作符
标量变量的内插的补充
- 标量变量在双引号中可以内插
- 输出 $ 符号需要在前面加上 \ 进行转义 , 或者使用单引号
- 如果要在变量内插后紧接着输出字母 、 数字或者下划线 , 可以使用花括号 {}.
“today is {year}_ {year}_ {mon} _${day}\n”
这样使用的变量就是 year mon 和 day 而不是带下划线的变量 .