- readline EXPR
Reads from the filehandle whose typeglob is contained in EXPR (or from
*ARGVif EXPR is not provided). In scalar context, each call reads and returns the next line until end-of-file is reached, whereupon the subsequent call returns undef. In list context, reads until end-of-file is reached and returns a list of lines. Note that the notion of "line" used here is whatever you may have defined with $/ (or
$INPUT_RECORD_SEPARATORin English). See $/ in perlvar.
This is the internal function implementing the
<EXPR>operator, but you can use it directly. The
<EXPR>operator is discussed in more detail in I/O Operators in perlop.
If readline encounters an operating system error, $! will be set with the corresponding error message. It can be helpful to check $! when you are reading from filehandles you don't trust, such as a tty or a socket. The following example uses the operator form of readline and dies if the result is not defined.
<EXPR>operator, if a
readlineexpression is used as the condition of a
forloop, then it will be implicitly assigned to
$_. If either a
readlineexpression or an explicit assignment of a
readlineexpression to a scalar is used as a
forcondition, then the condition actually tests for definedness of the expression's value, not for its regular truth value.