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