in reply to Inspection/Introspection
Unfortunately since there's no such thing as named parameters in Perl there's no real way to find out about a function's parameters either. (Update: That is, there is no introspective data structure where parameters could be read from; you have, as described below, to hook the function calls and dump the passed data to find out what's going on.)
A namespace's globals are stored in a hash that is named after it, with the double doublecolon; for example, %main::. To find out all the globals defined in package main, you could iterate over keys %main::, and query its type using f.ex ref $main::{some_global}.
A very useful module that comes to mind is Hook::WrapSub.
You could iterate over the keys in %SomeNamespace::, find which ones are subs, and wrap those in a function that logs debugging information, including the parameters in @_. You could also tie the global variables of the namespaces to wrapper classes that log their use.
It's going to be a fair bit of work though.Makeshifts last the longest.
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^2: Inspection/Introspection
by particle (Vicar) on Jun 22, 2002 at 22:03 UTC | |
by Aristotle (Chancellor) on Jun 22, 2002 at 22:14 UTC |