您好,登錄后才能下訂單哦!
這篇文章主要講解了“Perl數組的使用技巧”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Perl數組的使用技巧”吧!
Perl數組的使用
Perl數組是perl里面一種非常有用的東西。我們可以通過下面的方式定義Perl數組:
@a=("hello","great","cipher");
@b=(1,2,3,4,5,6,7);
◆@b的定義方式還可以寫成下面的形式:
@b=(1..7);#這種方式對于需要1到10000的初始值得Perl數組真實太重要了。
@b=("a".."z");
也是可以的,但是我想不出來對中國人有什么用。定義一個空Perl數組可以用下面的方式:
@c=();
訪問Perl數組通過下面的方式(下標和c語言一模一樣,從0開始,basic的用戶要注意了):
$b[0]=10000;
注意這里引導符變成了$不是@。通過這個變化表示這時正在訪問一個單獨的數據。而不是一組數據。還可以使用多個下標,但是這時就要使用@引導符了。例如:
@b[5,7,9]=(45,56,67);
這種情況下,print$b[8];將會在使用了perl-w得到一個使用未定義變量的錯誤,其他情況下什么都不會發生。
Perl數組之間相互拷貝,可以用下面的方式:
@d=@c;
這樣要比c語言簡單多了。同c語言不同,perl的Perl數組是可以動態改變大小的。因此我們可以追加,刪除Perl數組內的元素。追加一個元素可以使用這種方式:
@c=(@c,"hello");
◆perl里面有一個專門的函數用來驚醒追加操作叫做push,push的使用方法如下:
push(@c,"hello");
push(@c,("hello","halloha"));
push(@c,@a);
這里可以看到,可以給Perl數組追加一個元素,一組元素甚至另外一個Perl數組。另外,在perl的Perl數組中可以放不同類型的標量。這一點在c程序員的眼中可能有點怪異,但是如果記住perl里面的一切都是引用就可以了。或者理解成這是一個void類型的指針的Perl數組。有了push,就一定有pop。pop就是從Perl數組的***取出一個元素。用法為:
pop(@a);
既然可以從Perl數組的末尾加入元素,那么一定也可以從Perl數組的開頭加入元素。那么這個功能是由unshift函數提供的。用法為:
unshift(@c,"hello");
unshift(@c,("hello","halloha"));
unshift(@c,@a);
有了unshif就一定會有shift了。shift的功能是從Perl數組的開頭取出一個元素。用法為:
unshift(@a);
有了操作Perl數組兩端的函數那么一定也會有操作Perl數組中間部分的函數,這個函數就是splice,splice函數有三個作用。***個作用是向Perl數組中間的一部分插入內容。例如:
@d=(1..9);
my@e=("a".."f");
splice(@d,2,2,@e);
將會得到12abcdef56789,注意這里是從第二個開始插入,不是從下標為2的元素開始插入的。splice的第二個功能是刪除,例如在剛才的代碼上面再加上:
splice(@d,2,6);
將可以得到1256789;splice的第三個功能就是刪除到末尾。語法為:
splice(@d,2);
就是從第二個開始,刪除到末尾。我們還應該有一個可以把整個Perl數組合并成一個標量的函數。這個函數就是join,join有兩個參數,***個參數是合并時放在元素之間的分割符,第二個是進行操作的Perl數組。例如:
my@g=(1,2,3);
join("",@g);
將可以得到“123”,還有三個函數我們昨天已經見過了,就是undef,chop和chomp。undef(@a);的作用是把@a的內容清空。chop(@a);的作用是把Perl數組內每個元素的末尾去一個字符。而chomp(@a);的作用則是把Perl數組內的每一個元素的末尾的換行符去掉。我們還應該介紹一個函數就是scalar,這個函數取得Perl數組的長度。例如:
my@h=(1,2,3);
scalar(@h);
將可以得到3。但是我們經常不這么用,因為在將Perl數組向標量轉換時就會返回Perl數組的長度,例如下面的操作就可以。
my@i=(1,2,3,4);
print@i."\n";
將會打印出4。好了,今天就到這里吧,***是一個概括了今天大部分內容的程序。我寫的。中間會輸出很多錯誤信息。呵呵。
感謝各位的閱讀,以上就是“Perl數組的使用技巧”的內容了,經過本文的學習后,相信大家對Perl數組的使用技巧這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。