我有一個劇本,抓住標準輸入:在Perl中,如何確定是否存在標準輸入?
&process_input
sub process_input {
while(<STDIN>) {
$log_data .= $_;
}
}
當我運行該腳本:
myscript.pl -param1=a -param2=b
我會停留在這個子程序。一切運行正常,如果我做的:
echo "" | myscript.pl -param1=a -param2=b
的問題是我如何確定我連在放一個標準?我會認爲while()會返回false並且不會運行,但是我猜測它實際上正在等待您鍵入某種爲什麼會被「卡住」的內容。
可能重複[如何判斷STDIN是否連接到Perl終端?](http://stackoverflow.com/questions/528781/how-can-i-tell-if-stdin-is-connected -in-a-terminal-in-perl) – Ether 2010-06-04 20:20:15