將 Array 當作 linked list 處理
push - add values to end of array
pop - remove last value from end of array
unshift - add values to front of array
shift - remove first value from front of array
範例
push(@list, $bar);
push(@list, @rest);
$tos = pop(@list);
while ( $arg = shift(@ARGV) ) { }
unshift( @ARGV, 'zeroth arg', 'first arg');
split/join
split 能夠將一個字串以特定的分隔字串分成許多段, 並傳回一個 Array, 由於這個分隔字串是以正規表示式方式來指定, 使用上非常方便
範例
@list = split(/[, \t]+/, $expr);
範例
while (
($login, $passwd, $uid, $gid, $gcos, $home, $shell) = split(/:/);
}
join 則與 split 功能相反
範例
$line = join(':', $login, $passwd, $uid, $gid, $gcos, $home, $shell);
sort/reverse/grep
sort 用來將一個 array 中的元素以 Ascii 排序後, 傳回一個新的 array
ps: 在利用 sort 在對 array 排序時, 可以自訂排序的方法, 詳細的說明請看這裡
reverse 用來將一個 array 中元素以與原來相反方向排列, 傳回一個新的 array,
reverse 也可以用來將 Hash 中所有的 key 與 hash value 對調
範例
print sort @list;
@list2=reverse sort @list;
grep 會根據給定的一個正規表示式對一個 array 的所有元素作比對, 找出所有比對符合的元素, 組合成一個新的 array 傳回來
@lines=grep(!/^#/, @lines); # delete all lines starting with #
keys/vlaues/each
這三個是專門給 Hash 變數用的函式
keys 傳回一個 hash 中所有的 key 組成的 array
values 傳回一個 hash 中所有的 hash value 組成的 array
each 則是自 hash 中一次抓出一對 (key, hash value) 出來
範例
foreach $key (keys %array) {
printf "%s is %s\n", $key, $array{$key};
}
print reverse sort values %array;
while (($key,$value) = each %array) {
printf "%s is %s\n", $key, $value;
}
chop/chomp
chop 移除字串的最後一個字元, 通常都是用在從檔案輸入一行後, 移除其後的換行字元
chomp 功能與 chop 類似, 但只有當最後一個字元是換行字元時才會將其移除
範例
chop($line);
chop ($host = `hostname`);
while (
chop;
...
}
sprintf/substr/length/crypt/index/rindex
Perl 上的這些函式基本上用法都和 C language 中同名的函數類似.
詳細的說明請看
sprintf, substr, length, crypt, index, rindex
沒有留言:
張貼留言