一、标量和字符串函数
1. chop和chomp
chop VAR: 去除VAR的最后一个字符,返回去除的字符,VAR省略的时候是$_
chop LIST: 去除LIST中的每个元素的最后一个字符,返回最后一次去除的字符
chomp是chop的安全版本,它去除有$/决定的结尾字符串,并返回去除的字符个数
2. chr和ord
chr NUMBER: 返回NUMBER代表的字符,如chr(65)返回‘A',NUMBER省略时用$_
ord EXPR: 返回EXPR第一个字符的ASCII值
3. crypt PLAINTEXT,SALT
crypt PLAINTEXT,SALT: 生成和crypt(3)相同的消息摘要
4. hex和oct
hex EXPR: 返回十六机制字符串EXPR代表的值
oct EXPR: 返回八机制字符串EXPR代表的值
5. lc, lcfirst和uc, ucfirst
lc EXPR: 返回EXPR的小写版本,lcfirst返回首字符小写版本,uc和ucfirst对应大写版本
6. length和substr
length EXPR: 返回EXPR包含的字符数,不是字节数
substr EXPR,OFFSET,LENGTH: 返回子串,LENGTH可省略
7. index, rindex, substr
index STR,SUBSTR,POSITION: 返回SUBSTR在STR中从POSITION开始第一次出现的位置,POSITION默认是0,也就是说index STR,SUBSTR从STR开始查找SUBSTR第一次出现的位置
rindex STR,SUBSTR,POSITION: 和index相反,是找到最后一次出现的位置
8. reverse
reverse LIST: 在list上下文中返回一个颠倒顺序的LIST,在scaler上下文中先将LIST的元素连接起来,然后返回一个倒过来的字符串
9. sprintf
sprintf FORMAT, LIST: 返回对应的printf FORMAT, LIST的输出
二、@ARRAY函数
1. pop和push
pop ARRAY: 弹出ARRAY的最后一个元素并减少ARRAY的大小,类似于 $ARRAY[$#ARRAY--],默认参数是$_或者$ARGV
push ARRAY LIST: 将LIST的元素添加到ARRAY的末尾,类似于for $value (LIST) {$ARRAY[++$#ARRAY] = $value;}
2. shift, unshift, splice
shift ARRAY: 取出ARRAY的第一个元素并减少ARRAY的大小
unshift ARRAY, LIST: 将LIST添加到ARRAY的开头,并返回新ARRAY的大小
3. splice
splice ARRAY,OFFSET,LENGTH,LIST: 用LIST的元素代替ARRAY中从OFFSET开始的LENGTH个元素,后面三个参数都可以省略,省略LIST表示删除元素,省略LENGTH删除到结尾,省略OFFSET清空ARRAY
三、%HASH函数
1. delete, exists
delete EXPR: 删除哈希表或数组的元素,返回删除的元素或个数,例如delete $hash{key}; delete $array[index]
exists EXPR: 判断是否存在某元素,返回布尔值,例如exists $hash{key}
2. keys, values, each
keys HASH: 返回HASH的key列表
values HASH: 返回HASH的value列表
each HASH: 返回HASH的(key, value)列表,例如
while (($key,$value) = each %ENV) {
print "$key=$value/n";
}
四、list函数
1. join
join EXPR, LIST: 返回一个由EXPR分割的LIST元素字符串,如$rec = join(':', $login,$passwd,$uid,$gid,$gcos,$home,$shell);
2. grep, map
grep EXPR/BLOCK, LIST: 对LIST的每个元素执行EXPR/BLOCK,返回结果为真的元素列表。如@foo = grep(!/^#/, @bar);去掉所以注释
map EXPR/BLOCK, LIST: 对LIST的每个元素执行EXPR/BLOCK,返回执行结果的列表。如%hash = map { getkey($_) => $_ } @array;将数组转换成哈希
文章出处:飞诺网(www.firnow.com):http://dev.firnow.com/course/4_webprogram/cgi/perljs/20090428/165916.html