나는 표준 입력을 잡고 스크립트를 가지고 :Perl에서 표준 입력이 있는지 판별하는 방법은 무엇입니까?
myscript.pl -param1=a -param2=b
나는이 서브 루틴에 박히 :
&process_input
sub process_input {
while(<STDIN>) {
$log_data .= $_;
}
}
내가 스크립트를 실행
. 내가 할 경우 모든 것이 잘 돌아갑니다.echo "" | myscript.pl -param1=a -param2=b
질문 표준을 넣었는지 어떻게 결정합니까? while()은 false를 반환하고 실행하지 않지만 실제로는 'stuck'이라는 이유로 입력을 기다리고 있다고 생각할 것입니다.
[STDIN이 Perl의 터미널에 연결되어 있는지 어떻게 알 수 있습니까?] (http://stackoverflow.com/questions/528781/how-can-i-tell-if-stdin-is-connected -to-a-terminal-in-perl) – Ether