0
我想製作一個包裝器,它將從STDIN獲取數據並將其傳遞給另一個腳本,等待他的STDOUT響應並將其輸出到父級的STDOUT。IPC :: Open2中間件
我有以下的代碼,但它似乎並不工作:
test.pl
#!/usr/bin/perl
#
use IPC::Open2;
$pid = open2(\*RDR, \*WTR, '/usr/bin/perl test2.pl');
while (<STDIN>) {
print WTR;
}
while (<RDR>) {
print STDOUT;
}
,並在test2.pl,我有:
#!/usr/bin/perl
#
while (<STDIN>) {
print STDOUT;
}
它似乎寫test2.pl但我沒有來自test2.pl的反饋。
任何提示?
感謝的,
由於暴徒指出添加一個$ | = 1的子進程將會有所斬獲。請注意,您必須關閉父進程的標準輸入以允許它從第一個循環中退出(在unix上,它足以按下ctrl-d) – cyberz