У меня есть сценарий, который захватывает стандартный ввод:В 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 -to-a-terminal-in-perl) – Ether