$ echo foo > foo.txt $ perl -e'open FILE, $ARGV[0] or die $!; print ' foo.txt foo $ echo foo | perl -e'open FILE, $ARGV[0] or die $!; print ' - foo $ perl -e'open FILE, $ARGV[0] or die $!; print ' 'echo foo |' foo $ perl -e'open FILE, $ARGV[0] or die $!; print ' 'cat foo.txt |' foo #### $ echo foo | perl -e'@ARGV = "-" if !@ARGV; open FILE, $ARGV[0] or die $!; print ' foo #### $ perl -e'print <>' foo.txt foo $ echo foo | perl -e'print <>' - foo $ echo foo | perl -e'print <>' foo $ perl -e'print <>' 'echo foo |' foo $ perl -e'print <>' 'cat foo.txt |' foo #### *FILE = *STDIN; $fh = *STDIN; $fh = \*STDIN; # Ref often allowed and even preferred.