I think the fact that you had to explain the special form in your errata to the original message is a good enough reason. The normal concept of a goto statement should be understood, save for syntax, by any programmer. However, the form of goto that you are using here isn't consistent with that, and would require a good reading of the docs to understand the implications of using it. Functionally, it does exactly what you want, but realistically, will other programmers that might look at this code understand it?
That said, this might be a cool use for it, but as you also point out, I think the non-goto form is easier to see and understand. In addition, if you are talking dispatch tables and logic otherwise, I would try to improve the logic of the dispatch tables and thus avoid trying to make that second dispatch function call inside the first dispatch call.
Dr. Michael K. Neylon - firstname.lastname@example.org
"You've left the lens cap of your mind on again, Pinky" - The Brain
"I can see my house from here!"
It's not what you know, but knowing how to find it if you don't know that's important
Are you posting in the right place? Check out Where do I post X? to know for sure.
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
Want more info? How to link or
or How to display code and escape characters
are good places to start.