readline
- readline EXPR
- readline
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 returnsundef. 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_SEPARATOR). See $/ in perlvar.When
$/is set toundef, whenreadlineis in scalar context (i.e., file slurp mode), and when an empty file is read, it returns''the first time, followed byundefsubsequently.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.- $line = <STDIN>;
- $line = readline(*STDIN); # same thing
If
readlineencounters 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 ofreadlineand dies if the result is not defined.Note that you have can't handle
readlineerrors that way with theARGVfilehandle. In that case, you have to open each element of@ARGVyourself sinceeofhandlesARGVdifferently.