perl的变量与括号

perl的变量与括号

tkorays([email protected]

更喜欢在坑上乱跳


perl中的括号很有意思,各种括号开始的时候真有些让人有点迷糊。但是渐渐地会发现,这里面都是有规律的。


基础变量类型

    perl基础的变量有标量(SCALAR)、数组(ARRAY)、哈希(HASH)。

    标量的标识符是以 $ scalar)开头,可以表示数字或字符串,如:$a=1;$b='abc';

    数组的标识符是以 @ array)开头,用来表示一系列类型相同的变量。如:@a=1,2,3);@b=(’a','b','c';注意!后面使用的是圆括号。取值使用下标(从0开始),如$a[0]。这里取值时前面是$,可以这样理解:因为取得的值是一个标量。而下标处用的是方括号,这个值得注意下。

   哈希的标识符是以 % 开头,用来表示一系列键值对。可以用数组的方式定义,也可以使用=>方式,如下:%a=('a',1,'b',2);%b=('a'=>1,'b'=>2);注意,这里也是圆括号。访问值和数组差不多,$a{'a'}。这里key使用的是花括号。

其实,数组、哈希的括号也有一定的规律,挺有意思的。直接定义时都使用(),而访问则分别用[]{}

另外后面讲到的匿名存储中的匿名数组和匿名哈希也是分别用[]{}来定义的。


引用

对于熟悉c/c++的来说,引用应该比较熟悉。在很多场合下使用引用传值,能在很大程度上提高代码的运行效率。

那么如何定义一个引用呢?

其实很简单,在变量名前加一个” \”就可以了,如:$ra=\$a;$rb=\@b;$rc=\%c;变量名前面依然是$

而得到的引用是不能直接当做变量使用,需要解引用。解引用的方法是在变量名前加上变量原本类型所对应的符号。比如$rb是对一个数组的引用,那为了得到数组,就可以使用@$rb来得到整个数组。可以通过两种方式访问数组中数据,一种是$$rb[1],另一种是使用“->”符号$rb->[1]。明显第二种方式更加简洁。对哈希的操作类似$$rc{a},$rc->{a}


匿名存储

匿名数据结构也是经常用到的,比如在useragentpost方法中会传递一个匿名的hash表。

匿名数组的创建不再是使用 (),而是[];同样匿名hash使用{}创建,而不是()。注意,它返回的是引用!$ra={'a'=>1,'b'=>2};$ra->{a}=3;print $$ra{a};


你可能感兴趣的:(perl)