http://www.perlmonks.org?node_id=642815


in reply to Re^2: How to write a program to read stdin or command line?
in thread How to write a program to read stdin or command line?

This is built-in behavior in Perl. From perlrun:
The null filehandle <> is special: it can be used to emulate the behavior of sed and awk. Input from <> comes either from standard input, or from each file listed on the command line. Here’s how it works: the first time <> is evaluated, the @ARGV array is checked, and if it is empty, $ARGV[0] is set to "-", which when opened gives you standard input. The @ARGV array is then processed as a list of filenames.