Of course, if you're writing a network protocol, you're probably using sockets, which don't do character translation (recv and send). Other than peculiar cases like CGI where something is reading a file handle and writing to a socket, this shouldn't be a problem. And CGI.pm already puts STDIN, STDOUT, and STDERR into binmode, so why not just use $CRLF there?