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的強大了。

        爲了有朝一日能寫出簡潔優雅的程序,慢慢繼續學吧!!!

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