2011-01-13 30 views
2

我有一個perl腳本,我可以從命令行傳遞參數,它會輸出結果。我試圖捕獲這些結果:如何從perl`command`調用捕獲多行輸出?

$systemReturn = `$cmd`; 

只有空字符串的響應。我知道這個文件輸出一個多行字符串。顯然有一個不同的方法需要捕捉它。有誰知道我會如何做到這一點?

回答

5

該命令可能輸出到標準錯誤,而不是標準輸出。嘗試

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

謝謝,它正在輸出stderr而不是標準輸出。所以我很安全地認爲它會將整個輸出重定向到單個字符串? – John 2011-01-13 04:18:13

0

使用此

@systemReturn = `$cmd`; 
2

我會建議在Capture::Tiny或IO :: CaptureOutput覈對爲好。它使得捕捉輸出,拆分或加入STDOUT和STDERR,檢查成功,甚至是發球更容易,更便於攜帶。