perl脚本总结

来源:互联网 发布:将mac照片导入移动硬盘 编辑:程序博客网 时间:2024/05/17 05:06

perl的变量和括号

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

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

  1. 标量的标识符是以 $ (scalar)开头,可以表示数字或字符串,如:
    $a=1;$b='abc';
  2. 数组的标识符是以 @(array)开头,用来表示一系列类型相同的变量如:
    @a=(1,2,3);@b=(’a','b','c');
    注意!后面使用的是圆括号。取值使用下标,如a[0],可以这样理解:因为取得的值是一个标量。而下标处用的是方括号,这个值得注意下。
  3. 哈希的标识符是以 % 开头,用来表示一系列键值对。可以用数组的方式定义,也可以使用=>方式,如下:
    %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}。

三. 匿名存储

匿名数据结构也是经常用到的,比如在useragent的post方法中会传递一个匿名的hash表。
匿名数组的创建不再是使用 (),而是[];同样匿名hash使用{}创建,而不是()。注意,它返回的是引用!ra=a=>1,b=>2;ra->{a}=3;print $$ra{a};

0 0
原创粉丝点击