Perl语言入门(第五版) 读书笔记(八)---字符串与排序

第十四章 字符串与排序
1. 搜索在主串中的位置
 my $where1 = index("Hello world", "o");#搜索第一个子串
 my $where2 = index("Hello world", "o", $where1 + 1); #第三个参数起始搜索位置
 my $where1 = rindex("Hello world", "o"); #搜索最后一个子串
 my $where2 = rindex("Hello world", "o", $where1 - 1); #第三个参数是搜索截止位置 
2. 获取子串
 my $str = substr("HelloWorld",2,3); #值为llo, 从第2个位置开始获取3个字符
 my $str = substr("HelloWorld",5,1000); #第三个参数可省略,超出长度时返回剩下的字符串
 my $str = substr("HelloWorld",-4,2); #值为or,第2个参数为负数时表示从结尾倒数
 substr可以修改字符串被选中部分
 my $string = "Hello World";
 substr($string, 6) = "Perl";  #变成了"Hello Perl"
 substr($string, -20) =~ s/Perl/world/g;
3. sprintf格式化串,返回格式化后的串
 my $str = sprintf "%4d-%02d-%02d %2d:%02d:02d",$yr,$mo,$da,$h,$m,$s ;
 my $str = sprintf "%.2f",2.4999 ;
 while ( $num =~ s/^(-?\d+)(\d\d\d)/$1,$2/) {1;}   
4. 高级排序
 my @nums = sort { $a <=> $b } @some_nums; # 数组排序, <=>根据比较值返回 -1, 0, 1
 my @nums = reverse sort { $a <=> $b } @some_nums; #数组排序,逆序排序
 my @nums = sort { "\L$a" <=> "\L$b" } @some_nums; #数组排序,字符串不区分大小写排序 
 my @winners = sort { $a <=> $b } keys %score ;    #哈希按键排序
 my @winners = sort { score{$a} <=> score{$b} } keys %score #哈希按值排序

你可能感兴趣的:(Perl语言入门(第五版) 读书笔记(八)---字符串与排序)