
258
|
第
14
章
my @where = ();
my $where = length $fred;
while( 1 ) {
$where = rindex($fred, "abba", $where - 1 )
last if $where == -1;
push @where, $where;
}
say "Positions are @where";
用
substr
操作子字符串
substr
函数用于处理较长字符串中的一小部分内容,大致用法如下:
my $part = substr($string, $initial_position, $length);
它需要三个参数:一个原始字符串、一个从
0
算起的起始位置(类似
index
的返回
值)以及子字符串长度。找到的子字符串会被返回:
my $mineral = substr("Fred J. Flintstone", 8, 5); #
返回
"Flint"
my $rock = substr "Fred J. Flintstone", 13, 1000; #
返回
"stone"
substr
的第三个参数是要提取的子字符串的长度。如果位置偏后取不到那么长,那就
有多少返回多少,总不能生造对吧。
所以看上面的第二行代码,要求的子字符串长度有
1000
个字符,显然超出原始字符
串的结尾,
Perl
不会抱怨,剩下多少给你多少。如果你希望不加限定地一直取到字符
串结尾,那就省略第三个参数,比如:
my $pebble = substr "Fred ...