That's right... specifically, it depends on what is currently in @ARGV (if there's anything in @ARGV, the contents are treated as file names, and the files are magically opened and read from... if @ARGV is empty, it'll read from STDIN).
As long as we're getting specific, we might as well get it exactly right: The contents of @ARGV are always "treated as file names, and the files are magically opened and read from." If @ARGV is empty, then "$ARGV is set to "-", which when opened gives you standard input." - perlop
So it really never reads from the filehandle named STDIN, but it might read standard input by opening the file named "-".