Ich habe ein Skript bekam, die Standardeingabe packt:In Perl, wie ermittle ich, ob eine Standardeingabe vorhanden ist?
&process_input
sub process_input {
while(<STDIN>) {
$log_data .= $_;
}
}
Als ich das Skript ausführen:
myscript.pl -param1=a -param2=b
ich in diesem Unterprogramm stecken. Alles läuft in Ordnung, wenn ich tun:
echo "" | myscript.pl -param1=a -param2=b
Frage ist, wie kann ich feststellen, ob ich auch einen Standard in Put haben? Ich hätte gedacht, dass while() würde falsch zurückgeben und nicht laufen, aber ich schätze, es ist tatsächlich warten auf Sie, um etwas zu tippen, warum es "festgefahren" ist.
mögliche Duplikate von [Wie kann ich feststellen, ob STDIN mit einem Terminal in Perl verbunden ist?] (Http://stackoverflow.com/questions/528781/how-can-i-tell-if-stdin-is-connected -to-a-terminal-in-perl) – Ether