perl hash dispatch table