See the current Perl documentation for syswrite.
Here is our local, out-dated (pre-5.6) version:
syswrite - fixed-length unbuffered output to a filehandle
Attempts to write
LENGTH bytes of data from variable
SCALAR to the specified
FILEHANDLE, using the system call
write(2). It bypasses stdio, so mixing this with reads (other than
write(), seek(), or tell() may cause confusion because stdio usually buffers data. Returns the number
of bytes actually written, or undef
if there was an error. If the
LENGTH is greater than the available data in the
SCALAR after the
OFFSET, only as much data as is available will be written.
An OFFSET may be specified to write the data from some part of the string other than the beginning. A negative OFFSET specifies writing that many bytes counting backwards from the end of the string. In the case the SCALAR is empty you can use OFFSET but only zero offset.