in reply to STDIN typeglob
*STDIN = *DATA; makes *STDIN the same glob as *DATA. That makes *STDIN{IO} the same as *DATA{IO}. And <STDIN> reads from *STDIN{IO} (i.e. the file handle associated with the name STDIN).