我必須點亮內部軟件產品中的一些核心組件。由於其STDIN的真的討厭處理我必須:如何讀取STDIN並將內容寫回到Perl中的STDIN?
- 閱讀STDIN和備份的原始
- 解析它
- 寫RAW回STDIN
- 讓下游系統處理STDIN
不幸的是我不允許修改任何遺留的代碼,所以我必須點亮它。
我的第一個工作不嘗試:
BEGIN {
my $stdin_raw = join '', <STDIN>;
use IO::Handle;
my $stdin_io1 = IO::Handle->new();
$stdin_io1->printflush($stdin_raw);
my $stdin_io2 = IO::Handle->new();
$stdin_io2->printflush($stdin_raw);
STDIN->fdopen($stdin_io1, 'r');
require CGI;
warn CGI::param('PARAM1');
warn CGI::param('PARAM2');
STDIN->fdopen($stdin_io2, 'r');
}
它能夠在第一線,但通宵CGI也不下游系統都可以從STDIN我(試圖)任何輸入設置上面列出來讀取STDIN。
因此:如何讀取STDIN並將內容寫回到Perl中的STDIN?
該應用程序在CGI(網絡服務器)條件下運行。 STDIN處理Web請求的POST數據。
我不確定你的問題描述是否合理。什麼是STDIN?如果你真的可以寫信給它,它會上游,而不是下游。 – melpomene 2013-03-11 14:09:04
我已添加更多解釋。 – burnersk 2013-03-11 14:13:00
寫入STDIN會將數據發送回Web服務器。它不會讓你再讀STDIN。 – melpomene 2013-03-11 14:18:03