Perl学习笔记之数组与哈希

数组与哈希:

Perl的数组相信是与其它语言都不太一样的地方,像它的$表示操作的是单个值,是一个元素,注意:可以是标量变量,也可以是数组或者散列中的某个元素。

如:

$a   $array[1]   $hash{'key'}都表示一个元素


而对于@符号,它所代表的是数组,多个值,或者说,一个集合,代表你操作的是多个元素


数组和散列也是Perl中仅有的具备集合性质的数据类型

如:

@array   @array[0,3,9]  @hash{qw{key1 key2}}   #后两个表示切片


切片:

Perl中比较有意思的便是切片,它是数组或者哈希的一个片段,或者称为切片

对于@a[1]来说,它指的就是切片,因为它用的是@符号,或许你会认为这是表示取数组a的1号元素,但是,它是切片,如果你仅仅需要单个元素,就要用$

而切片对我们来说非常有用:

比如,将@a中的1、2号元素赋值,那么你可能会用到

$a[1] = "val1";

$a[2] = "val2";

但是用切片的话就会显得简洁优雅了:

@a[1,2] = qw(val1 val2);


还有写非常好的例子:

比如

@list[2..7] = reverse @list[2..7];

@list[reverse 2..7] = @list[2..7]; #反转数组的2到7号元素

@num{'A'.. 'Z'} = 1..26;#快速创建散列

@hash{'old','new'}= hash{'new','old'};交换两个元素


总之,学会使用切片能让你的Perl程序显得简洁而优雅


多维数组:

如果需要访问多维数组的单个元素,就得这样使用,不可与其它高级语言弄混

$a->[1][2]


             Perl语言在大多数人的眼中,认为用它写的程序很难看懂,的确,Perl有很多技巧性的东西,而Larry Wall设计Perl的初衷就是为了让它简洁而优雅得处理问题,用Perl写程序基本上几行就能搞定,而稍复杂的程序也不会超过满屏(好吧,这是我这种菜鸟还达不到的程度。。。)

        Larry Wall就是个语言学家,因此Perl有着更接近人类语言的特点,我现在也越来越能体会到Perl的强大了。

        为了有朝一日能写出简洁优雅的程序,慢慢继续学吧!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章