gpt4 book ai didi

perl - 使用反引号调用的外部程序仍会产生输出

转载 作者:行者123 更新时间:2023-12-04 17:54:31 25 4
gpt4 key购买 nike

所以我在 perl 中调用了一个外部程序并想捕获它的输出:

my @RNAalifoldOut = `RNAalifold some parameters`;

如果从命令行调用,输出由三行组成,例如:
4 sequences; length of alignment 48.
__GCCGA_UGUAGCUCAGUUGGG_AGAGCGCCAGACUGAAAAUCAGA
...((((.....((((.........)))).(((((.......)))))

然而我的阵列 @RNAalifoldOut只包含最后两行,第一行在执行该行时直接出现在屏幕上。

怎么会这样?我想也许程序将第一行写入 STDERR ,但这不是被反引号操作符丢弃了吗?我能做些什么来隐藏这个输出?

问候
缺口

最佳答案

您可能会看到来自 RNAalifold 的标准误差。反引号仅捕获标准输出。

通过将代码更改为捕获标准输出和标准错误

my @RNAalifoldOut = `RNAalifold some parameters 2>&1`;

要丢弃标准错误,请使用
my @RNAalifoldOut = `RNAalifold some parameters 2>/dev/null`;

在类 Unix 平台上。在 Windows 上,使用
my @RNAalifoldOut = `RNAalifold some parameters 2>nul`;

关于perl - 使用反引号调用的外部程序仍会产生输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10725533/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com