簡體   English   中英

使用open3的perl寫入STDIN並捕獲STDOUT和STDERR

[英]perl using open3 to write to STDIN and capture STDOUT and STDERR

我正在使用Windows x64計算機,並試圖從命令中捕獲STDOUT和STDERR流。 我還必須寫命令的STDIN。 我試圖為此使用perl的IPC :: Open3,但是沒有運氣。 我使用的腳本貼在這里和命令,這個腳本在這里 我當然將$ cmd變量替換為Windows的“ perl test.pl”。

應該打印“ StdOut!” 和“ StdErr!”以及pid,但我只能得到PID。 我不知道這是因為我的操作系統,還是因為該線程已有10年歷史了(沒什么大不了的,Perl 5差不多是18,對嗎?)。 另一位和尚發布了腳本來解決另一個腳本中的所有問題,但是在我的計算機上, 腳本從未退出。

誰能給我一個使用open3在perl中啟動命令,寫入其STDIN並捕獲其STDERR和STDOUT的有效示例嗎?

select僅適用於Windows中的套接字; 它不適用於管道。 你可以代替創建插座,這些信息傳遞給open3而不是讓它為你創建的管道(如看到這里 ),但我建議你使用更高級的模塊,如IPC ::運行代替。 open3是一個相當底層的函數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM