See the current Perl documentation for read.
Here is our local, out-dated (pre-5.6) version:
read - fixed-length buffered input from a filehandle
Attempts to read
LENGTH bytes of data into variable
SCALAR from the specified
FILEHANDLE. Returns the number of bytes actually read,
0 at end of file, or undef if there was an error.
SCALAR will be grown or shrunk to the length actually read. An
OFFSET may be specified to place the read data at some other place than the beginning of the string. This call is actually implemented in terms of stdio's
fread(3) call. To get a true
read(2) system call, see