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
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
$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
# 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