Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer

Re^3: When should I use a dispatch table?

by Limbic~Region (Chancellor)
on Dec 01, 2006 at 00:28 UTC ( #587091=note: print w/replies, xml ) Need Help??

in reply to Re^2: When should I use a dispatch table?
in thread When should I use a dispatch table?

The issue that traveler pointed out was that I tested if a key existed when I didn't need to. Only when the user defines the -u option is it necessary to test for the hash key's existance. Without the -u, there is no default condition and the exists can be avoided. I corrected the template accordingly.

You have mentioned an alternative way of determining which sub to dispatch. Unfortunately it may actually be less efficient than exists. You are fetching the value and testing it for truth where exists need only check to see if the key is present in the hash.

Cheers - L~R

  • Comment on Re^3: When should I use a dispatch table?

Replies are listed 'Best First'.
Re^4: When should I use a dispatch table?
by runrig (Abbot) on Dec 01, 2006 at 07:21 UTC

    Yes, my version requires that there is a default (I hadn't examined the full version of your code closely as to whether or not it required a default), and although I know exists is more efficient than fetching the value unconditionally, overall efficiency depends on what the common case is. If most of the time you are fetching an existing value, then you may as well fetch it instead of testing for existence and then fetching it anyway. Your version always tests for existence then fetches one value or the other.

    Also, I agree w/chromatic's rant below, and the usual rant about premature optimization also applies (though I realize benchmarking this sort of thing can sometimes be a fun way to pass the time). :-)

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://587091]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others avoiding work at the Monastery: (5)
As of 2017-02-25 10:55 GMT
Find Nodes?
    Voting Booth?
    Before electricity was invented, what was the Electric Eel called?

    Results (365 votes). Check out past polls.