>  foreach my $var (@arr) { ... }

You mean
   foreach @arr -> $var {...}


>  before  { ... }     # run before first iteration, only if there is at 
>                        least one iteration
>  after   { ... }       # run after last iteration, only if there is at least
> one iteration
>  noloop  { ... }    # run if there are no iterations

I don't know. Seems like an awful lot of keywords to remember what a 
simple if should take care of.

>  between { ... }   # run between iterations, not before first or after last

I usually find it better, for what you're talking about, to do something 
after. That will be handled with C<NEXT>.  But, for instance, when asking 
for input I find myself asking something before the loop and at the end of 
the loop. Technically, this should be in the condition of the while, but:

  while print("Enter your input: "), $_=<> { }

Is quite yucky. So a feature to handle this might be nice.

Actually, because of the closure thing in Perl 6, could I do this?

  while { 
      print "Enter your input: ";
      $_ = <>
  } { ... }

As far as I can tell, I can, which is I<very> nice :)

Oh, I seem to have strayed a little. Well, I guess, if you can do what I 
just talked about, there's really not much need for your four extra 
keywords.

It should be modulable, so you could write a nice module that would allow 
us to C<use cool_loop_controls> :)  This kind of breaks 
the habit of CoolLoopControls, but I like breaking it in this 
case.   I think there's even a case in the camel book that describes 
something like this, when talking about sub (&).

Luke

Reply via email to