转载:http://blog.sina.com.cn/s/blog_4a0824490101hncz.html
(1)/c表示把匹配不上的字符进行替换.
$temp="AAAABCDEF";
$count=$temp=~tr/A/H/c;
print "$temp\t$count\n";
结果:AAAAHHHHH 5
(2)/d:表示把匹配上的字符全部替换
$temp="AAAABCDEF";
$count=$temp=~tr/A/H/d;
print "$temp\t$count\n";
结果:HHHHBCDEF 4
(3)/s:表示如果要替换的字符中出现连续多个一样的字符,则去冗余:
$temp="AAAABCDEF";
$count=$temp=~tr/A/H/ds;
print "$temp\t$count\n";
结果:HBCDEF 4
$temp="AAAABCDEF";
$count=$temp=~tr/A/H/cs;
print "$temp\t$count\n";
结果:AAAAH 5
=============================================================
另外,我再总结一下tr的用处:
$count=$temp=~tr/A//; #表示计算$temp中出现A的次数,$temp并不改变值
$count=$temp=~tr/A/A/; #表示计算$temp中出现A的次数,$temp并不改变值 和上面的意思一样的
$temp="AAAABCDEF";
$count=$temp=~tr/[A-Z]/[a-z]/;
#表示进行大小写转换
print "$temp\t$count\n";
结果:aaaabcdef
9
如果写成$count=$temp=~tr/[A-Z]/[A-Z]/; 则$temp不会改变,仅统计$temp里面大写字母的个数
结果:AAAABCDEF
9