Some doc patches by Casey West :
Casey West [Fri, 25 Apr 2003 10:46:39 +0000 (06:46 -0400)]
Subject: Re: [PATCH] Re: [perl #21260] adding error handling info to perlfunc/readline
Date: Fri, 25 Apr 2003 10:46:39 -0400
Message-ID: <20030425144639.GY34510@geeknest.com>

Subject: Re: [perl #21785] [PATCH] clarify readdir in for conditional
From: Casey West <casey@geeknest.com>
Date: Fri, 25 Apr 2003 07:52:13 -0400
Message-ID: <20030425115213.GP34510@geeknest.com>

Subject: Re: [perl #7213] [PATCH] Updating example in perldata
From: Casey West <casey@geeknest.com>
Date: Thu, 24 Apr 2003 21:27:22 -0400
Message-ID: <20030425012722.GN34510@geeknest.com>

p4raw-id: //depot/perl@19344

pod/perldata.pod
pod/perlfunc.pod
pod/perlsyn.pod

index 8e2e177..5720589 100644 (file)
@@ -644,7 +644,7 @@ values of the array or hash.
 
     foreach (@array[ 4 .. 10 ]) { s/peter/paul/ } 
 
-    foreach (@hash{keys %hash}) {
+    foreach (@hash{qw[key1 key2]}) {
         s/^\s+//;           # trim leading whitespace
         s/\s+$//;           # trim trailing whitespace
         s/(\w+)/\u\L$1/g;   # "titlecase" words
index 721b890..70e604b 100644 (file)
@@ -3834,6 +3834,21 @@ operator is discussed in more detail in L<perlop/"I/O Operators">.
     $line = <STDIN>;
     $line = readline(*STDIN);          # same thing
 
+If readline encounters an operating system error, C<$!> will be set with the
+corresponding error message.  It can be helpful to check C<$!> 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 C<readline>, and takes the necessary
+steps to ensure that C<readline> was successful.
+
+    for (;;) {
+        undef $!;
+        unless (defined( $line = <> )) {
+            die $! if $!;
+            last; # reached EOF
+        }
+        # ...
+    }
+
 =item readlink EXPR
 
 =item readlink
index 16bca2d..1b5a6a9 100644 (file)
@@ -315,6 +315,14 @@ hang.
        # do something
     }
 
+Using C<readline> (or the operator form, C<< <EXPR> >>) as the
+conditional of a C<for> loop is shorthand for the following.  This
+behaviour is the same as a C<while> loop conditional.
+
+    for ( prompt(); defined( $_ = <STDIN> ); prompt() ) {
+        # do something
+    }
+
 =head2 Foreach Loops
 
 The C<foreach> loop iterates over a normal list value and sets the