in reply to Dispatching Method Objects

Try the following in your objectified dispatch code:
sub dispatch { my $self = shift; my $meth = { a=>"first", b=>"second" }->{shift(@_)}; $self->$meth(); }
(You can add error checks, etc.)

BTW if you can, it makes more sense to drop your dispatch all together and let client code look for the methods by name. And then you can put error checks in an AUTOLOAD.