系统命令输出错误

时间:2014-01-21 14:50:22

标签: perl command system output

我想在输入文件的循环中通过perl运行ext软件(hmmer)命令(在linux中)。

我用过这一行

system "hmmbuild  $outfile $files";

其中$ outfile是我输出文件和输入文件中的$ files。 hmmbuild是ext软件的命令。

当我运行程序时,它会给出输出文件 GLOB(0x1b94b220)的错误代码。

任何人都可以帮助我解决我的错误,如何纠正?

我也尝试了exec命令,后面有勾选和括号。

这是我得到的确切输出消息。如何将结果打印到输出文件($ outfile)?

sh: -c: line 0: syntax error near unexpected token `('
sh: -c: line 0: `hmmbuild --amino GLOB(0x11eb3220) aproNOG00001'

脚本在这里..

 #!/usr/bin/perl
 use Bio::AlignIO;
 use Bio::Align::AlignI;

 my $allfiles= 'allfilenames_alpha_hmms.txt';
  system "module load hmmer/3.1b1";
print "loaded hmmer\n";
 open(FIH, $allfiles);
 while ($min=<FIH>)
{ chomp($min);   my @pats=split " ",$min;
     foreach my $files(@pats)  {

     print $files; print "\n";

open(my $outfile,  '>',"$prefix.hmm");  

system "hmmbuild --amino $outfile $files";

print $outfile;
print "file saved\n";

# }
  }
 }
  print "\n\n\n\t   ###\tDONE\t###   \n\n";

1 个答案:

答案 0 :(得分:1)

  

如何将结果打印到输出文件($ outfile)

我认为它hmmbuild期望文件的路径?将路径传递给文件而不是$outfile中的内容。

system "hmmbuild --amino $prefix.hmm $files";