24小时热门版块排行榜    

查看: 431  |  回复: 1

海阔天空187

金虫 (小有名气)

[求助] 求助perl大神 已有1人参与

本人是perl菜鸟一枚,在编写一个求匹配TATA碱基个数的时候,遇到一个重复序列不知道该如何是好,求大家帮助。
程序如下:

$str='TATATATATATA';
my $cc = 0;
my $tmp = 0;
if( $tmp = () = ($str =~ /TATA/g ) )
{
$cc += $tmp;
}
print "$cc\n";

程序算出来是TATA个数是3,但是自己算的话应该是5,该如何改写这个程序,算的是5,求大家帮忙。
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

FMStation

至尊木虫 (知名作家)

【答案】应助回帖

CODE:
#
# Counting Program in Perl
#
use strict; use warnings;

sub countnmstr {
    my ($haystack, $needle) = @_;
    my $adj = length($needle) - 1;
    die "Search string cannot be empty!" if $adj < 0;

    my $count = 0;
    while ( $haystack =~ /\Q$needle/g ) {
        pos $haystack -= $adj;
        $count += 1;
    }
    return $count;
}

print countnmstr("TATATATATATA","TATA"), "\n";

2楼2017-04-29 22:40:08
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 海阔天空187 的主题更新
信息提示
请填处理意见