在任何地方找到DNA核苷酸就行

时间:2014-02-26 22:09:56

标签: perl

我正在写一个perl脚本,我需要在线上的任何地方找到DNA(a,g,t,c)的字母。 到目前为止我已经

while (FILE)
{ if ($_ =~ /[A+][G+][T+][C+]/)
print "this is valid";
}

我知道这部分需要修复,但我无法弄清楚出了什么问题。

感谢您的时间

1 个答案:

答案 0 :(得分:0)

一些评论。

  • 您希望打开FILE句柄。
  • 您应该逐行阅读FILE句柄与<>运算符。
  • if ()必须后跟一个块,而不是一个语句。
  • 您可以省略$_ =~,在匹配模式时会自动隐含。
  • 似乎四个字母中的一个的单个实例就足够了,请参阅正则表达式。
  • 请注意我的缩进样式,这是Perl的官方风格。

代码:

open FILE, "filename" or die;
while (<FILE>) {
    if (/[AGTC]/) {
        print "this is valid";
    }
}

单个陈述有一个较短的if形式。你可以省略条件和块周围的parens。

open FILE, "filename" or die;
while (<FILE>) {
    print "this is valid" if /[AGTC]/;
}