in reply to How to Test For Empty Piped Input

Before the loop, you could test if standard input connected via pipe (and/or if connected to a tty) via -p (or -t) operator (respectively) (see perldoc -f -x).

Ah, just noticed that you are running on MS Windows; in that case I have not tested if -[pt] function work reliably or at all.

You should see some results if you were to search for how to check if the program is connected via pipe.

Posted this elsewhere, so decided to just post here too (yesterday was getting too many time outs). Anyway ...

# cat check-standard-input-pipe.pl ; perl check-standard-input-pipe.pl + ; echo "x\ny"| perl check-standard-input-pipe.pl #!/usr/local/bin/perl use v5.36; -p *STDIN{q/IO/} or die qq[No standard input pipe, exiting ...\n] ; process( *STDIN{q/IO/} ); exit; sub process( $source ) { while ( my $line = <$source> ) { print qq[got: <$line>]; } return; } No standard input pipe, exiting ... got: <x >got: <y >