Why not allow C<else if> while still allowing C<elsif> as a synonym, preserving backwards compatibility while still allowing all these weird and varied constructs people seem to have use for?
In any case, I don't really see why C<loop...else> necessarily implies all these other cases, too. Maybe they're useful in the real world, maybe they're not, but C<loop...else> itself is pretty clearly useful. Perhaps it's just the type of work I do (system administration), but dealing with the "zero records" problem is something I have to do in nearly every program I write, and it always adds an annoyingly inelegant bit of code. I paste from a bit of code I wrote about a year before this discussion got started... my $recs = 0; while (my $this = $db->getNext()) { ... $recs++; } unless ($recs) { # because while can't tell me it didn't loop... Now maybe C<while> can. Hurray! I'd hate to lose such a nice construction as C<loop...else> just because of the slippery slope argument implied by C<elsloop>, etc. Anyone who's taken oratory or participated in high school debate teams should know that slippery slope arguments are always fallacious. :-) Trey