Re: [ID 20010621.007] readline() not quite as equal as <>
Abhijit Menon-Sen [Sat, 23 Jun 2001 05:17:44 +0000 (10:17 +0530)]
Message-ID: <20010623051744.A18583@lustre.linux.in>

(Can't think of a good place to put tests.)

p4raw-id: //depot/perl@10910

opcode.pl
pod/perlfunc.pod
t/op/flip.t
toke.c

index 2f4a7fd..8defa67 100755 (executable)
--- a/opcode.pl
+++ b/opcode.pl
@@ -444,7 +444,7 @@ bless               bless                   ck_fun          s@      S S?
 backtick       quoted execution (``, qx)       ck_open         t%      
 # glob defaults its first arg to $_
 glob           glob                    ck_glob         t@      S?
-readline       <HANDLE>                ck_null         t%      
+readline       <HANDLE>                ck_fun          t%      F
 rcatline       append I/O operator     ck_null         t%      
 
 # Bindable operators.
index 67c305c..0451232 100644 (file)
@@ -3596,12 +3596,13 @@ C<chdir> there, it would have been testing the wrong file.
 
 =item readline EXPR
 
-Reads from the filehandle whose typeglob is contained in EXPR.  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 however you may have defined it
-with C<$/> or C<$INPUT_RECORD_SEPARATOR>).  See L<perlvar/"$/">.
+Reads from the filehandle EXPR.  The EXPR can be either the name of
+the handle or the typeglob for it.  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 however you may have defined it with
+C<$/> or C<$INPUT_RECORD_SEPARATOR>).  See L<perlvar/"$/">.
 
 When C<$/> is set to C<undef>, when readline() is in scalar
 context (i.e. file slurp mode), and when an empty file is read, it
@@ -3612,6 +3613,7 @@ operator, but you can use it directly.  The C<< <EXPR> >>
 operator is discussed in more detail in L<perlop/"I/O Operators">.
 
     $line = <STDIN>;
+    $line = readline(STDIN);           # same thing
     $line = readline(*STDIN);          # same thing
 
 =item readlink EXPR
index 99b22ef..e2d0913 100755 (executable)
@@ -32,5 +32,5 @@ if (($x...$x) eq "1") {print "ok 9\n";} else {print "not ok 9\n";}
     # coredump reported in bug 20001018.008
     readline(UNKNOWN);
     $. = 1;
-    print "ok 10\n" unless 1 .. 10;
+    print "ok 10\n" if 1 .. 10;
 }
diff --git a/toke.c b/toke.c
index faa8bba..76be79b 100644 (file)
--- a/toke.c
+++ b/toke.c
@@ -43,7 +43,7 @@ static I32 utf16rev_textfilter(pTHXo_ int idx, SV *sv, int maxlen);
 #define UTF ((PL_linestr && DO_UTF8(PL_linestr)) || (PL_hints & HINT_UTF8))
 #endif
 
-/* In variables name $^X, these are the legal values for X.
+/* In variables named $^X, these are the legal values for X.
  * 1999-02-27 mjd-perl-patch@plover.com */
 #define isCONTROLVAR(x) (isUPPER(x) || strchr("[\\]^_?", (x)))