Overview
perl不需要编译器和链接器,只需要写出程序并告诉perl来运行。解释执行时自顶向下,跳过sub定义部分依次执行
perl ext1.pl
chmod u+x ext1.pl
Basic syntaxes
标量
可以是数字或字符串,用操作符进行操作,分为:浮点数、整数、非十进制整数
操作符:+ - * / %(取模) **(乘幂)
-
字符串
由字幕、数字及标点符号组成,有两种形式:单引号中的字符串和双引号中的字符串。
单引号:'是单引号,\是斜杠,除此之外不对字符串内容进行转换。
双引号:反斜线字符是转义字符。并支持变量的内插,即双引号字符串中的变量名替换为该变量的当前值。$ @ " \ 四个字符在双引号中有特殊含义。。
例子:
-
其它操作符
拼接操作符:"."
“Who”." are" 等于"Who are"
重复操作符"x"
“bag"x3等于"bagbagbag”
标量变量
标量变量以美元符号$ 开头,必须由字母或下划线开始。
Perl默认变量:$ARGV(@ARGV里面储存了所有命令行参数), $_(默认变量), $1, $2, …, $n(第1~n词的默认变量), $$, $@, $?, $!, …
-
赋值
$value = 5
还可以用双目操作符,比如+=, -=, .= -
内插
双引号中可以内插变量,想输入$符号需要写成$;单引号中则会直接显示$ 符号。
对内插符号区分可以使用花括号,例如${value}_,则只有value是变量名,下划线不属于变量。
操作符
操作符可以用符号或者字幕表示,除了常规操作符还有<=>(cmp)比较符号,当前者大于后者时输出1,两者相等输出0,前者小于后者输出-1。字符会比较两者的ASCII码。
逻辑操作符与位操作符和verilog相同,一个符号是位操作符,两个符号是逻辑操作符。
自加++自减–:自加可以用于字符串,但结尾字符为z,Z,9时自加会进位;字符需要先转化为数字再自减。
- undef and defined function
**undef可以根据场合分别转化为数字0或者空字符串,但本身不是数字也不是字符串。
列表和数组
列表是数字的有序集合,数组是存储列表的变量;列表指的是数据,而数组指的是变量。
列表的值不一定要放在数组里,但数组变量都一定包含一个列表。
- 列表
- 数组
**表示数组中的单个元素时,需要加$;表示整个数组时,加@。
疑问:在赋值时,(arrays[0],arrays[1])不需要加 $吗?
my @arrs = ();是清空数组的正确方法。