in reply to Re^4: Go to?
in thread Go to?

dragonchild,
I am not sure I have ever encountered a legitimate need for using goto LABEL in perl. I have used the other "ok" form a handful of times. According to tilly, he has only ever encountered 2 legitimate uses. That is to say that it doesn't come up that often. On the other hand, Knuth himself has apparently written a paper on defending the virtues of goto (if Ovid is to be believed)*. I think your advice is sound. Any use of goto LABEL warrants documentation and code review.

Cheers - L~R

* - The link in that thread is dead ATM :-)

Replies are listed 'Best First'.
Re^6: Go to?
by tilly (Archbishop) on Apr 20, 2006 at 04:32 UTC
    Knuth did indeed write that paper. And I've read it.

    In that paper Knuth has two basic arguments for goto. The first is that there are algorithms that can be more efficiently written with goto than without. The second is that it is useful for exception handling. He also quotes a theorem that named loop control would obviate the first point.

    Perl has exactly that form of named loop control, so the algorithmic argument for goto does not apply in Perl. (Besides, Perl's implementation of goto is not very efficient...) And since the 70's the idea of structured exception handling has come around. That is much better than the use of goto for the same purpose. Therefore Knuth's arguments fail for Perl.

    For more detail on my opinions about goto, Re (tilly) 4: Paradigm Shift - when to use goto is still accurate. And no, I have not run into any more legitimate needs for goto in Perl.