我在Perl(Biomart)中使用了一个程序包,该程序包可以打印出查询结果。打印输出的语法如下所示:
$query_runner->execute($query);
$query_runner->printResults();
然后将查询结果打印到我的终端。相反,我希望将打印出的内容打印到输出文件中。我试过了:
$output = "@ARGV[1]";
open OUT , ">$output" or die "Can't open $output: @ARGV[1].txt!\n";
$query_runner->execute($query);
print OUT $query_runner->printResults();
但这似乎不起作用,子例程printResults()仍会打印到我的终端而不是输出文件。有没有一种方法可以在不更改包本身的子例程的情况下将其输出打印到我的输出文件中?
最佳答案
您可以使用 select
设置默认的打印文件句柄,例如。
select (OUT);
关于perl - Perl:如果包中的子例程将某些内容打印到我的终端上,如何在不更改包的情况下在程序中使用其输出?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7430563/