NAME
Net::Inspect::Debug - provides debugging facilities for Net::Inspect library
DESCRIPTION
the following functionality is provided:
- debug(msg,[@args])
-
if
$DEBUG
is set prints out debugging message, prefixed with "DEBUG" and info about calling function and code line. If@args
are givenmsg
is considered and format string which will be combined with@args
to the final message.This function is exported by default.
- xdebug(object,...)
-
Same es debug, but prefixed with object. Usually overwritten in classes to show info about object.
This function can be exported on demand.
- trace(msg,[@args])
-
if
$TRACE{'*'}
or$TRACE{$$pkg}
' is set prints out trace message, prefixed with "[$pkg]".$pkg
is the last part of the package name, where trace got called. If@args
are givenmsg
is considered and format string which will be combined with@args
to the final message.This function is exported by default.
- xtrace(object,...)
-
Same es trace, but prefixed with object. Usually overwritten in classes to show info about object.
This function can be exported on demand.
- $DEBUG
-
If true debugging messages will be print. Can be explicitly imported, but is not exported by default.
- $DEBUG_RX
-
This variable can contain a regex. If set, only debugging within packages matching the regex will be enabled, but only if c<$DEBUG> is also true.
Can be explicitly imported, but is not exported by default.
- %TRACE
-
If true for '*' or
$pkg
(seetrace
) trace messages will be print. Can be explicitly imported, but is not exported by default.
To integrate the debugging of Net::Inspect with other debugging frameworks one has to call one of
Net::Inspect::Debug var => \$myDEBUG, sub => \&my_debug;
Net::Inspect::Debug var => \$myDEBUG, output => \&my_output;
as early as possible (before any modules using Net::IMPs debug functionality get loaded).
- var => \$myDEBUG
-
This make the local
$DEBUG
variable an alias for$myDEBUG
.$myDEBUG
needs to be a global variable, lexical variables will not work. - sub => \&my_debug
-
This will call
my_debug
with the debug message instead of using the builtin implementation. - output => \&my_output
-
This will call
my_output
instead of the printing to STDERR done within the internal (x)debug and (x)trace functions.
To ease debugging one could give a number D
of debugD
as debug level directly when importing the module, e.g.
perl -MNet::Inspect::Debug=10 ...
use Net::Inspect::Debug 'debug10';