Term::ExprUI prevents the default method from being called. This is because, after the function lookup fails, instead of passing it to the default method, it passes it to the expression evaluator. This is not a bug. It will go away in the future since the command line will be removed entirely -- you will only have the expression interface.
The new method takes all of the parameters that may be passed to Term::GDBUI::new, plus some or all of the following functions. They allow you to maintain the symbol table in your application in whatever format you desire.
Called when the assignment operator is used. Passes the name of the variable to create and the value it should have. Return value is ignored.
Called whenever a variable is used in the right-hand side of an expression. Takes the name of the variable, returns its value.
Returns an arrayref of the names of all variables currently defined. Used for command-line completion. Takes no arguments.
Returns a command set listing all known functions. Used for both displaying help and generating completions. See Term::GDBUI for the definition of a command set. Take no arguments.
Calls a function. Passed the name of the function to call, then all the function's arguments. Returns the function result.