Strings(一)
上一篇 /
下一篇 2008-12-23 22:12:28
/ 个人分类:Perl-Cook Book
一、访问子字符串
Perl提供了2种方法能够很方便的访问子字符串:substr和unpack
1、substr
substr的函数形式为substr($string, $offset, $count),其中$string为源字符串,$offset为偏移位置(负数表示从尾端开始),$count表示截取的字符个数(如果省略则默认截取直到字符串结尾)。需要特别说明的是substr函数返回的是一个lvaluable值,可以直接把该函数的返回值当作一个已定义的字符串变量来使用。
如:
$str = "This is yashirolj's blog!";
$first = substr($str, 0, 1); #T
$last = substr($str, -1); #!
substr($str, 9, 11) = "my"; #把"yashiro's"修改为"my"
substr($str, -1) = ""; #删除最后一个字符"!"
2、unpack
当你一次需要访问字符串中的多个子字符串时,unpack用起来就很方便。unpack函数的形式为unpcak TEMPLATE, EXPE,其中EXPR可以省略(默认为$_)。
如:
$str = "to sleep or to eat";
($sleep, $eat) = unpack("x3, A5, x7, A3", $str); #$sleep初始化为"sleep",$eat初始化为"eat"
#用unpack来实现substr
sub substr {
my($what, $where, $howmuch) = @_;
unpack("x$where a$howmuch", $what);
}
收藏
举报
TAG: