in reply to Re^2: Avoiding if/else knots
in thread Avoiding if/else knots

xdg,
No offense, but you really haven't added anything to what I said.

To quote myself, "The trouble with dispatch tables in Perl is that the conditions need to be exact keys". I didn't say that creating a range was hard, I said "you need to create keys for each of those integers".

In other words, there is no short-cut to make that a single key and anything that can't be done as a straight lookup (requires logic) doesn't work. That is, it doesn't work without additional if/elsif/else knots to determine the correct key to dispatch.

Cheers - L~R

Replies are listed 'Best First'.
Re^4: Avoiding if/else knots
by xdg (Monsignor) on Aug 18, 2006 at 14:28 UTC
    No offense, but you really haven't added anything to what I said.

    Well, we can agree to disagree.

    You said 'if you want any value in the range 1-999' but then said 'each of those integers'. Those aren't the same thing. My post was an attempt to differentiate the easy case (integers) from the hard case (non-integers).

    -xdg

    Code written by xdg and posted on PerlMonks is public domain. It is provided as is with no warranties, express or implied, of any kind. Posted code may not have been tested. Use of posted code is at your own risk.

      xdg,
      Yes, we can agree to disagree. My opinion is that we are talking past each other and you are countering a position I don't hold. Update You are correct that I did make a typo s/value/integer/ - it definately does change the meaning of the sentence.</Update>

      My example was to illustrate that a simple question such as "is the integer in this range" can't be answered with a single key in the dispatch table. This immediately followed my first assertion that the problem was each condition had to be an exact key. It was a simple example that illustrated the point.

      I didn't bother moving on to more complex examples because I believe I had already made my point and because I referenced Roy Johnson's great tutorial - Implementing Dispatch Tables which covers these difficult cases and some work arounds.

      Cheers - L~R