perl和python相比最大的差别除了文化宗旨外,应该就是有没有奇形怪状的符号了,有时候完全不知道到底是要当作什么类型来处理,不过只要把变量的含义和用法弄清楚,再难也比不上C语言里直接来三个指针符号坑爹
$符号表示的是一个元素,可以是标量,也可以是数组或者哈希里的某个元素
$scalar
$array[0]
$hash{‘key’}
@符号表示一个数组,多个元素的集合,下面分别是数组切片和哈希切片
@array
@array[0, 3, 6]
@hash{qw(key1 key2)}
%符号表示一个哈希散列
&符号表示一个子程序
*符号表示符号表
大部分时候,perl里判断变量类型比较坑爹,因为往往程序当中,复杂一点的仅凭上面这些符号立马还不能完全能够判定变量类型,而是要要根据符号,变量名,特殊的关键字来共同决定,相比python这点只能用痛并快乐着来形容
$ cpu [2]
符号 变量名 关键字
根据符号$可以看到$cpu[2]描述的是一个标量元素,名字是cpu,但是从后面的关键字使用的是数字下标来看,知道这里是一个数组元素
同样$age{‘lihui’}根据$知道描述的是一个元素,{}以及字符串作为key这个关键字可见描述的是hash名为age的一个元素