This function sends a message on a socket.
It takes the same flags as the system call of the same name - see
send(2). On unconnected sockets you must specify a destination
TO, in which case send works like
The function returns the number of bytes sent, or
the undefined value if there is an error. On error, it puts the error
code into $!.
(Some non-UNIX systems improperly treat sockets as different objects than ordinary file descriptors, with the result that you must always use send and recv on sockets rather than the handier standard I/O operators.)