In general, if you need a lexical variable, such as
$mnuTerms, outside of the routine that created it, simply return it upon exiting the routine and store it in a variable or hash for further processing. Because there is a reference to the returned parameter, the variable will continue to hang around after going out of scope and will retain its value. Local parameter passing can go both up and down the call chain.
-Mark