in reply to Dispatching Method Objects

How about using an AUTOLOAD method? When you pass your object a function it doesn't explicitly know about, AUTOLOAD is invoked; at that point, if the 'function name' is on your dispatch table, you can then call the appropriate dispatch function directly.

Note that you also could use coderefs as opposed to just strings as to avoid problems with strict 'refs' and the like. (eg: %dispatch = ( a => \&first, b => \&second );).

-----------------------------------------------------
Dr. Michael K. Neylon - mneylon-pm@masemware.com || "You've left the lens cap of your mind on again, Pinky" - The Brain
It's not what you know, but knowing how to find it if you don't know that's important