readline EXPR
readline
Reads from the filehandle whose typeglob is contained in EXPR
(or from *ARGV if 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_SEPARATOR in
English). See "$/" in perlvar.
When $/ is set to "undef", when "readline" is in scalar context
(i.e., file slurp mode), and when an empty file is read, it
returns '' the first time, followed by "undef" subsequently.
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.
my $line = <STDIN>;
my $line = readline(STDIN); # same thing
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.
while ( ! eof($fh) ) {
defined( $_ = readline $fh ) or die "readline failed: $!";
...
}
Note that you have can't handle "readline" errors that way with
the "ARGV" filehandle. In that case, you have to open each
element of @ARGV yourself since "eof" handles "ARGV"
differently.
foreach my $arg (@ARGV) {
open(my $fh, $arg) or warn "Can't open $arg: $!";
while ( ! eof($fh) ) {
defined( $_ = readline $fh )
or die "readline failed for $arg: $!";
...
}
}
Like the "<EXPR>" operator, if a "readline" expression is used
as the condition of a "while" or "for" loop, then it will be
implicitly assigned to $_. If either a "readline" expression or
an explicit assignment of a "readline" expression to a scalar is
used as a "while"/"for" condition, then the condition actually
tests for definedness of the expression's value, not for its
regular truth value.
Generated by phpman v4.0 Author: Che Dong Under GNU General Public License
2026-06-16 03:25 @216.73.217.83
CrawledBy Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)