in reply to Re: Do yourself a favor and upgrade (Bug in 5.8.0)
in thread Do yourself a favor and upgrade (Bug in 5.8.0)

No, the best advice is to listen to The Man, The Legend, Edsger Dijkstra when he says:
For a number of years I have been familiar with the observation that the quality of programmers is a decreasing function of the density of go to statements in the programs they produce. More recently I discovered why the use of the go to statement has such disastrous effects, and I became convinced that the go to statement should be abolished from all "higher level" programming languages (i.e. everything except, perhaps, plain machine code). At that time I did not attach too much importance to this discovery; I now submit my considerations for publication because in very recent discussions in which the subject turned up, I have been urged to do so.
Full paper here: http://www.acm.org/classics/oct95/

By the way - that paper was written in 1968. You're damn near 40 years behind best practices when you write code with gotos in it.

20050227 Edit by ysth: p, blockquote tags; linkify url; correct name typo

  • Comment on Re^2: Do yourself a favor and upgrade (Bug in 5.8.0)

Replies are listed 'Best First'.
Re^3: Do yourself a favor and upgrade (Bug in 5.8.0)
by PetaMem (Priest) on Apr 28, 2005 at 21:29 UTC
    By the way - that paper was written in 1968. You're damn near 40 years behind best practices when you write code with gotos in it.

    Please see this thread, and especially this comment:

    "People who just balk at any sight of a goto have at best heard about Dijkstra's article Go To Considered Harmful (which wasn't titles bij Dijkstra, but by Hoare), but never read the paper, or not understood it. Dijkstra just warns that goto can easily lead to unstructured programs, he doesn't say it's evil all the time."

    Bye
     PetaMem
        All Perl:   MT, NLP, NLU

      While that might be true it doesn't mean it is true in this case or most cases. From reading your code it would seem to me that the following works the same but is easier to read. Not saying yours is bad, but 99% of the time if you reach for GOTO you could probably phrase the problem differently so that it is not needed.

      while ($idx_la > $i) { &log("I: $i IDX_LA: $idx_la\n"); $phrase = join ' ', @$sl_ctl[$i..$idx_la]; $rawtr = $self->get_rawtr($phrase); if ($@$rawtr) { my $disam = $self->disambiguate($phrase, $rawtr, $i,$idx_la); push @tl_rtl, $disam; last; } $idx_la--; push @tl_rtl, $phrase; }


      ___________
      Eric Hodges
Re^3: Do yourself a favor and upgrade (Bug in 5.8.0)
by Anonymous Monk on Apr 27, 2005 at 12:08 UTC
    Oops, so I massively typo'd The Man's name. What can I say, great mind, horrible name for english-speakers to try to remember to spell this early in the morning.