develooper Front page | perl.perl6.language | Postings from January 2002

Re: Apoc4: The loop keyword

From:
Larry Wall
Date:
January 21, 2002 12:51
Subject:
Re: Apoc4: The loop keyword
Message ID:
200201212050.MAA09246@wall.org
Ted Ashton writes:
: Thus it was written in the epistle of Michael G Schwern,
: > On Sun, Jan 20, 2002 at 10:58:34PM -0800, Larry Wall wrote:
: > > :     while( my $line = <FILE> ) {
: > > :         ...
: > > :     }
: > > 
: > > That still works fine--it's just that $line lives on after the while.
: > 
: > This creeping lexical leakage bothers me.  While it might make the
: > language simpler, the proliferation of left-over lexicals seems
: > sloppy.
: 
: . . . if not to say downright ugly.  The boolean of an if or a while is more a
: part of the "inner stuff" than the "outer".

It doesn't seem that way to me.

: What's the chance that it could be considered so?  

In most other languages, you wouldn't even have the opportunity to put
a declaration into the conditional.  You'd have to say something like:

    my $line = <$in>;
    if $line ne "" { ... }

Since

    if my $line = <$in> { ... }

is Perl shorthand for those two lines, I don't see how one can say that
the variable is more related to the inside than the outside of the block.
One can claim that the code after the C<if> may not be interested in
C<$line>, but the same is true of the block itself!  The conditional
only decides whether the block runs.  It's not part of the block.

Larry



nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About