網路管理語言 Perl 入門與實作: | ||
---|---|---|
<<< Previous | 4. Perl 的資料型態 | Next >>> |
有了串列的預備知識之後,接著我們來看陣列如何產生?
Perl 的陣列,以 @ 加上變數名稱來表示,比如:@oklist,它的元素可由 index 索引逐一取得,第一個 index 值由 0 開始,最後一個 index 值由 $#oklist 來表示。陣列的第一個元素為 $oklist[0],第二個元素為 $oklist[1],第三個元素為 $oklist[2],其它依此類推,最後一個元素為 $oklist[$#oklist]
@oklist=(1, 2, 4, 6); @oklist 陣列共有 4 個元素,分別是 $oklist[0], $oklist[1], $oklist[2], $oklist[3] $#oklist 值為 3 最後一個元素可表示成 $oklist[$#oklist],其值為 6 @tiny=(); # 空陣列 #! /usr/bin/perl @a=(2, 4, 6); @b=(1, 3, 5); @c=qw(a b c); # 那麼: @total=(@a, @b, @c); # 同於 (2, 4, 6, 1, 3, 5, "a", "b", "c"); # 可以把陣列一次印出來 print @total; # 結果:246135abc |
在上述範例中,我們把陣列一次印出來,可是所有元素全接在一起了,這有時並不是我們想要的,通常我們希望能在元素之間加入某些分隔符號,比如 "," 逗點,那麼如何做呢? join 這個函式可以幫我們做到這一點,示範如下:
#! /usr/bin/perl @a=(2, 4, 6); @b=(1, 3, 5); @c=qw(a b c); # 那麼: @total=(@a, @b, @c); # 同於 (2, 4, 6, 1, 3, 5, "a", "b", "c"); $result = join ',' , @total; print $result; # 結果:2,4,6,1,3,5,a,b,c |
上式中,join 函式的作用對象是陣列,語法是:join 表示式, 陣列
因為我們希望 @total 的元素用 "," 號分開,且把結果(是一個字串)放入 $result 中,因此,使用 join ',' , @total;
您可以任意變換您要分隔的符號。
再者,有時我們希望上述的過程可逆,也就是說:把 $result 還原成 @total (2,4,6,1,3,5,a,b,c 變成 246135abc),那麼要怎麼做呢? split 這個函式可以幫我們的忙:
#! /usr/bin/perl $result="2,4,6,1,3,5,a,b,c"; @total = split(/,/, $result); $i=0; while ($i <= $#total) { print '$total[' . $i . '] ===> ' . $total[$i] . "\n"; $i++; } # 輸出: $total[0] ===> 2 $total[1] ===> 4 $total[2] ===> 6 $total[3] ===> 1 $total[4] ===> 3 $total[5] ===> 5 $total[6] ===> a $total[7] ===> b $total[8] ===> c |
上式,在 split 中指明分隔符號為 ",",它可以把純量字串 "分割" 成為陣列,然後存放在 @total 中。
<<< Previous | Home | Next >>> |
4.2.1 串列 | Up | 4.2.3 走過每一個陣列元素 |