一段小代码中的一个uninitialized value的问题,困扰已久,谢谢



QUOTE:
原帖由 flw 于 2007-10-12 13:52 发表
这时候通常可以用 range operator

是说这样的形式?
..... if (/BEGIN/ .. /END/)

这里不太好用吧, 起始是>, 结束是下一个起始


QUOTE:
原帖由 Lonki 于 2007-10-12 14:28 发表

是说这样的形式?
..... if (/BEGIN/ .. /END/)

这里不太好用吧, 起始是>, 结束是下一个起始

好用。你可以试一下。
好象//里面是用的正则

额...我试的是这样能全部输出
foreach (@lines) {
    print "$_\n\n" if (/>/ .. /ACGT/);
}

这样反而不行
foreach (@lines) {
    if (/>/ .. /[ACGT]/) {
        print "$_\n";
    }
    else {
        print '-' x 50, "\n";
    }
}


不知道如何分割组, 老大指导下

while(<DATA>){
    if ( /^>/ .. /^>(.*)/ ){
        my $header = $1;
        print '='x65, "\n";
        print "header: $header\n";
        print '-'x30, "\n";
    }
    else{
        print;
    }
}

__DATA__
>11
hello
asflkajsl
>22
world
asdofasdlfkj
额... 有点困惑了...