你如何从perl`command`调用中捕获多行输出?

时间:2011-01-13 03:58:29

标签: perl

我有一个perl脚本,我可以从命令行传递参数,它将输出结果。我试图捕捉这些结果:

$systemReturn = `$cmd`;

只有空字符串的响应。我知道这个文件输出一个多行字符串。显然,需要一种不同的方法来捕获它。有谁知道我会怎么做到这一点?

3 个答案:

答案 0 :(得分:5)

该命令可能输出到stderr,而不是stdout。尝试

$systemReturn = `$cmd 2>&1`;

答案 1 :(得分:2)

我建议您查看Capture::Tiny或IO :: CaptureOutput。它使捕捉输出,拆分或加入STDOUT和STDERR变得更容易,更便携,检查是否成功,甚至是发球台。

答案 2 :(得分:0)

使用此

@systemReturn = `$cmd`;