in reply to how to manage a large console menu
Curses::UI::Popupmenu might be the way to go.
I haven't used it, but it looks like you should be able to use the onChange method to read the value of the selected item and pass that to your subroutine.