phpman > perldoc > readline(3)

Markdown | JSON | MCP    

    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)
Valid XHTML 1.0 TransitionalValid CSS!