13,字符串与排序

1,用index寻找子字符串
$where = index($big,$small);
perl会在$big字符串寻找$small字符串首次出现的地方,并且返回一个整数代表第一个字符串出现的位置。

可以利用rindex函数取得子字符串最后出现的位置。
my $last_slash = rindex("/etc/passwd","/"); #值为4


2,使用substr操作子字符串
$part = substr($string,$initial_position, $length);
它需要3个参数:一个字符串,一个从零起算的初始值(类似于index的返回值)以及子字符串的长度。它的返回值是子字符串。

如果想要一直取到字符串的结尾,那么不论字符串长短,只要省略第三个参数就行了
my $pebble = substr "Fred J. Flintstone",13; #得到“stone”

一个较大的字符串的起始位置可以为负值,表示从自发串结尾开始倒数(意思是说,位置-1就是最后一个字符)
my $out = substr("some very long string",-3,2); # $out为"in"

index与substr可以合作无间。在下面的例子里,我们会取出字符l的位置开头的字符串
my $long = "some very very long string";
my $right = substr($long,index($long,"l"));

假如字符串是个变量,你就可以变动该字符串被选取的部分
my $string = "Hello,World!";
substr($string,0,5) = "Goodbye"; # $string 变成"Goodbye,world"

还可以用绑定操作符(=~)只对字符串的某部分进行操作。下面的例子只会处理字符串的最后20个字符,将所有的fred替换成barney;
substr($string,-20) =~ s/fred/barney/g;


3, 用sprintf格式化数据
带有货币数值的sprintf
my $money = sprintf "%.2f", 2.49997;

4,高级排序(还没有看懂)
宇宙飞船操作符(<=>)
三路字符串比较符:cmp

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/312079/viewspace-245698/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/312079/viewspace-245698/

你可能感兴趣的:(13,字符串与排序)