I have also heard good reports about Cava, but have never used it myself as I have an Active State Pro license (can send one of my standalone .exe's to anybody I want without extra license fees). Detecting that:
$menuWhatever=$mw->Menu(...); means to include Tk::Menu is a "moving target", requires some heuristic "smarts" and requires updates as more widgets are added. Active State does this for more than one library, Tk, just being one.
As near as I can tell ALL of these things require some amount of pain and learning curve. There just isn't a "do XYZ and it works solution" for all situations.