我有一個perl腳本,我可以從命令行傳遞參數,它會輸出結果。我試圖捕獲這些結果:如何從perl`command`調用捕獲多行輸出?
$systemReturn = `$cmd`;
只有空字符串的響應。我知道這個文件輸出一個多行字符串。顯然有一個不同的方法需要捕捉它。有誰知道我會如何做到這一點?
我有一個perl腳本,我可以從命令行傳遞參數,它會輸出結果。我試圖捕獲這些結果:如何從perl`command`調用捕獲多行輸出?
$systemReturn = `$cmd`;
只有空字符串的響應。我知道這個文件輸出一個多行字符串。顯然有一個不同的方法需要捕捉它。有誰知道我會如何做到這一點?
該命令可能輸出到標準錯誤,而不是標準輸出。嘗試
$systemReturn = `$cmd 2>&1`;
使用此
@systemReturn = `$cmd`;
我會建議在Capture::Tiny或IO :: CaptureOutput覈對爲好。它使得捕捉輸出,拆分或加入STDOUT和STDERR,檢查成功,甚至是發球更容易,更便於攜帶。
謝謝,它正在輸出stderr而不是標準輸出。所以我很安全地認爲它會將整個輸出重定向到單個字符串? – John 2011-01-13 04:18:13