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

Reply via email to