> This was definitively rejected by Larry in 2002:

Yes. That is good to see and I do think I remember seeing that or some similar 
postings come to think of it.  Thank you for shaking my memory.

Now it is 2006.  Object syntax has changed.  Little bits and pieces (and 
sometimes larger chunks) of the Perl 6 grammar have changed and reverted and 
changed again.

I don't know what the reasoning was back then and it may be the same today.  
I'm just wondering what that reason is.  Maybe nested statement modifiers 
promote bad language skills.  Maybe its because statement modifiers have 
always been frowned upon in the language and it wasn't a good idea to promote 
their status.  Maybe it was very difficult to allow for parsing of nested 
statement modifiers.  Maybe it was too difficult to rewrite the operation 
tree.  Maybe nested statement modifiers violate spoken language too much.

I can see some of these reasons still being valid.  But others I don't see 
being valid anymore.  It is trivial to change the grammar.  It is some 
patches to the tg file to allow it to loop (which may take some more effort).  
It is a feature that may not be used by many but is useful to others.

The following is one more interesting case.

say "Ok then" if $yes and $true unless $no or $false;

Without nested modifiers you'd have either:

say "Ok then" if $yes and $true and ! $no and ! $false;

or

say "OK then" unless ! $yes or ! $true or $no $or $false;

And everybody knows you shouldn't use double negatives.

I can't change the mind of Larry but the mind of Larry can be changed.  I 
can't speak for others, but I have found myself wanting to do similar things 
in Perl 5 and I would wager other people have also.

I'll be quiet if you'd like me to be, unless you don't want me to be. :)

Paul

Reply via email to