Perl-08—數組庫函數

來源:互聯網
上載者:User

1、數組拼接函數:splice

用於向列表或數組中插入元素或子列表,也可以從數組或列表中刪除元素或子列表,還可以替換數組或列表中的元素或子列表;其原形如下:

@RetValue = splice(@Array,SkipElements,Length,@NewList);

參數SkipElements是拼接前跳過的元素數目,即:從第SkipEllements個元素處開始拼接;Length表示將要被替換掉的元素數;@NewList是將要拼接近來的數組或列表;當@NewList的長度大於Length時,後面的元素自動向後移動,反之則向前移動;因此,當Length == 0時,就相當於向數組或列表中插入元素;如:

splice(@Array ,-1,0,“Hello”);#表示想數組尾部添加一個元素;

當@NewList為空白的時候,就相當於從數組或列表中刪除元素或子列表;這時,如果Length為空白,則就把第SkipElements個元素之後的元素全部刪除;如:

splice(@Array,5) ; # 表示把第6個元素後面的元素全部刪除;

splice(@Array,-1); #表示刪除數組或列表中的最後一個元素;傳回值為被刪除元素的列表;

splice(@Array,5,1);#刪除數組@Array中的第6個元素之後的那個元素;

2、數組排序函數:sort() / reverse()

sort()函數為數組或列表排序,返回排序後的數組或列表;

reverse()函數使數組或列表中的所有元素按照字母順序逆需排列,返回處理後的數組或列表;

3、隊列函數:

Perl中可以把數組或列表看成隊列來使用;

隊頭操作函數:shift()和unshitf()

$Element  = shift(@Array):刪除數組中的第一個元素,剩下的元素全部向前移動,並返回被刪除的元素;不加參數時,預設對數組@ARGV進行操作;

$Count  = unshift(@Array,Elements):這個函數的功能shift()相反,它在數組的第一個元素之前增加一個或多個元素,傳回值為結果清單或數組的長度;

隊尾操作函數:push()和pop()

$Element  = pop(@Array):刪除數組的最後一個元素,並返回這個被刪除的元素;當列表已空,則返回未定義值(即:空值);

$Count  = push(@Array,Elements):在數組或列表的尾部增加一個或多個元素,並返回結果清單或數組的長度;

4、vec函數:vec()

vec是向量函數,它把簡單變數$Vector的值看作多塊(維)資料,每塊資料中含有一定數量的位(bit),合起來即為一個向量資料。每次調用訪問其中的一塊資料,可以讀娶,也可以寫入,參數$Index就像是數組的下標一樣,指出訪問哪一塊,0為第一塊,依次類推,需要注意的是,訪問次序是從右至左,即:第一塊在最右邊;參數bits指定每一塊中的位元,可以取值位1、2、4、8、16或32;調用方法如下:

$RetVal = vec($Vector,$Index,$bits);

5、其它數組函數

@ResultList  =  map(Expr,@List);

該函數把@List中的各個元素作為運算式Expr的運算元進行計算,耳@List中的元素本身保持不變,把對@List中的各個元素的處理結果存入到一個新的數組或列表中,並把這個新的數組或列表作為傳回值;在運算式Expr中,系統變數“$_”表示@List中的各個元素;

$FormatString  =  pack(PackFormat,@List):把一個列表或數組以在機器中儲存的格式或C等程式設計語言所使用的格式轉化(封裝)到一個簡單變數中;參數PackFormat中包含一個或多個格式字元,列表@List中每個元素對應一個,各個格式字元間可用空格或tab鍵隔開,pack()函數會忽略空格;

對於參數PackFormat中存放的格式字元來說,要重複使用某一格式多次的話,可在這個格式字元後面加上表示一個表示使用次數的整數;

如:$TwoInts  =  pack(“i2”,103,241); #“i2”表示需要使用格式i2次;

而如果要把同一個格式應用到數組或列表中的所有元素上,可在該格式字元後面加上一個星號“*”;如:

$ManyInts  =  pack(“i*”,14,26,11,83);

其它相關格式字元,在編寫Perl程式的時候可以隨時查閱相關文檔;

pack()函數最常見的用途就是建立可與C程式互動的資料;如:C中的字串以Null 字元NULL或0或‘/0’結束,則在Perl中可建立這樣的字串資料:

$CString  =  pack(“ax”,$MyString);

@List   =  unpack(PackFormat,$FormatString):該函數的功能與pack()函數的功能相反,用於把以機器格式儲存的值轉化成Perl中值的列表;其格式字元與pack()函數的基本相同;

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.