=learn 替换 VAR =~ s/PATTERN/STRING/M s/PATTERN/STRING/M 功能:对 VAR 标量进行搜索,查看其是否包含 PATTERN 定义的字符串 , 如果包含,就将其替换为 STRING 。 STRING 可以看作是双引号定义的字符串,其内可内插变量,如果内插内置变量如 $& , $1 , $2 , $3 等,则会使替换的功能更加灵活。如果 STRING 省略,则会将匹配的字符删除。 返回值 : 首先将匹配的字符替换,然后返回替换成功的次数,替换默认只替换第一个匹配的字符组合,只有与 /g 修饰词一起使用,将所有匹配的字符替换,此时返回值则可能大于 1 。如果替换失败,返回假( "" ),等效于 0 。 =cut # 示例代码 将 DNA 变为 RNA ( 替换 T 为 U) $dna = "atcgggccctagatcg" ; $rna = $dna ; $rna =~ s/t/u/g ; # 示例代码 将限制性内切酶识别序列进行替换,将 GAATTC 替换为 G#AATTC, 然后用 # 切开,获得酶切片段 $DNA = "ATCGATCGATCGAATTCAGAATTCAAT" ; ( $DNA_S = $DNA ) =~ s/GAATTC/G#AATTC/ ; @DNA_CUT = split /#/ , $DNA_S ; # 示例代码 4-11 :利用替换计算 GC 含量 $dna = "atcgggccctagatcg" ; $gc_count = $dna =~ s/(g|c)/ $1 /g ; print $gc_count , " " , $dna ; # 示例代码:将字符串 "dna1ATCG.dna2CTAG" 改为 "DNA1:ATCG\nDNA2:CTAG" $string = "dna1ATCG.dna2CTAG" ; $string =~ s/dna(\d)/DNA $1 :/g ; $string =~ s/\./\n/g ; print $string ; # 作业 将字符串 $DNA 每 4 个字符后面添加一个 \n ,然后 print 输出 , 输出结果应为: =result -------------- AAAA TTTT CCCC GGGG -------------- =cut $DNA = "AAAATTTTCCCCGGGG" ; $DNA =~ s/ 第 1 空 / 第 2 空 / 第 3 空 ; print $DNA ;