求助一个perl的问题



我是直接回复的,没测试
还是有问题 不过还是要谢谢你
我自己再研究研究吧
这个肯定没问题了,用while比foreach效率高
#!/usr/bin/perl
use strict;
use warnings;

open(DATA, '<datafile') or die "Cannot open file: $!\n";
while ( <DATA> ) {
    print if /(\d+\s+){3}\d+$/;
}
但是这样匹配有一个问题 就是出现下面这种情况也会被错误匹配
TYSND1|NM_173555        se_10909      9606    844     851     764     771     441     m8:1a   x       m8      9606 9615 9612
这个时候最后只有三个数字
print if /(\d+\s+){4}$/;

我错了,改成4算了
你这个是因为倒数第二列里面出现了数字
把正则改一下就行了
print if /(\b\d+\s+){3}\d+$/;
可是改成4了以后
TYSND1|NM_173555        se_10909      9606    750     757     690     697   440     m8:1a   x       1a      10090 10116 9606 9615
这样的一行就没法匹配了.....
该怎么办啊....
恩 正解  谢谢
我有个问题啊,帅哥
为啥在匹配的时候不用去掉\n呢?