On Fri, May 04, 2001 at 07:56:39PM -0700, Larry Wall wrote:
> Nathan Wiger writes:
> : > : This one. I see a filehandle in *boolean* context meaning "read to $_",
> : > : just like the current "while (<FOO>)" magic we all know and occasionally
> : > : love. I'd expect $FOO.readln (or something less Pascalish) to do an
> : > : explicit readline to a variable other than $_
> : >
> : > It would be $FOO.next, but yes, that's the basic idea. It's possible
> : > that iterator variables should be more syntactically distinquished than
> : > that. One could, I suppose, make up something about $<FOO or $<FOO>
> : > meaning the same thing thing as $FOO.next, for people who are homesick
> : > for the angles, but I haven't thought that out, and don't even dare to
> : > mention it here for fear someone will take it as a promise. Er, oops...
> :
> : So, just to clarify, the thought is:
> :
> : print while ($FOO); # like Perl 5 <FOO>
> : $var = $FOO.next; # like Perl 5 $var = <FOO>;
> :
> : I assume that this is indicative of a more general iterator syntax, and
> : subject to indirect objects?
> :
> : $FH = open "<$file" or die "Can't open $file: $!";
> : $line = next $FH;
> :
> : If so, I can live with that.
>
> Yes, that's the reason it's C<next>, and not something more specific
> like C<readline>, which isn't even true in Perl 5 when $/ is mungled.
>
> We do have to worry about the C<next> loop control function though.
I don't know. If it had to be written as $FH.next then there
should be no ambiguity.
Graham.