read filehandle , $ var , length , [ offset ]
Attempts to read
length
bytes of data into variable
var
from the specified
filehandle
. The function returns the number of bytes actually read, or
0
at end-of-file. It returns the undefined value on error.
var
will grow or shrink to the length actually read. The
offset
, if specified, says where in the variable to start putting bytes, so that you can do a
read
into the middle of a string.
To copy data from the filehandle FROM into the filehandle TO, you could say:
Note that the opposite ofwhile (read FROM, $buf, 16384) { print TO $buf; }
read
is simply
print
, which already knows the length of the string you want to write and can write a string of any length.
Perl's
read
function is actually implemented in terms of standard I/O's
fread
function, so the actual
read
system call may read more than
length
bytes to fill the input buffer, and
fread
may do more than one system
read
in order to fill the buffer. To gain greater control, specify the real system call using
sysread
.