Sounds much like the approach I described. :) When I said there's no way to find out about a function's formal parameters, I meant that there's no introspective data structure anywhere that could provide this information, the way the namespace hashes provide information about the defined globals. Note I did point out you can wrap the traced subs with a debugger function that dumps the parameters to and results from them.
Makeshifts last the longest.