During my S03 cleanup today, I noticed that because *$fh and **$fh interpolates into the current argument list, it's always the same as =$fh under list context. So I wrote this paragraph:
[Conjectural: File handles interpolates its lines into positional arguments (e.g. to C<statement_control:<for>>), so we can make C<=$fh> always return the next item, regardless of the context: for *$fh -> $line { ... }; # read one line at a time for **$fh -> $line { ... }; # read up all lines first say(=$fh, =$fh, =$fh); # print three lines ] However, this will mark a departure from the context-sensitive use of =$fh: say =$fh; # prints everything =$fh ~~ /.../; # reads just the first line So, I wonder if the "=" operator can always just mean "return the next thing", and leave the Perl5-esque context-sensitiveness to the readline() function. I've written (scalar <FH>) many times in Perl 5 code, and I wonder if a reliably-scalar-context iterator can be a win here... Thoughts? Thanks, Audrey
signature.asc
Description: OpenPGP digital signature