Perl Diver 2.31
Main Environment Variables Perl Default Values Perl Config - Summary Perl Config - Full Installed Modules List Directory uptime Docs

Module Documentation
Details and documentation about a specific module, including version and documentation (if available). Note that while links to perldoc.com and search.cpan.org are provided, the module may be part of a larger distribution. If you reach a File Not Found page on either site, please try the parent module.

Data::Dump::Trace

Name Data::Dump::Trace
Version 0.02
Located at /usr/local/share/perl5
File /usr/local/share/perl5/Data/Dump/Trace.pm
Is Core No
Search CPAN for this module Data::Dump::Trace
Documentation Data::Dump::Trace
Module Details Data::Dump::Trace

NAME

Data::Dump::Trace - Helpers to trace function and method calls


SYNOPSIS

  use Data::Dump::Trace qw(autowrap mcall);
  autowrap("LWP::UserAgent" => "ua", "HTTP::Response" => "res");
  use LWP::UserAgent;
  $ua = mcall(LWP::UserAgent => "new");      # instead of LWP::UserAgent->new;
  $ua->get("http://www.example.com";)->dump;


DESCRIPTION

The following functions are provided:

autowrap( $class )
autowrap( $class => $prefix )autowrap( $class => $prefix )
autowrap( $class1 => $prefix1, $class2 => $prefix2, ... )autowrap( $class1 => $prefix1, $class2 => $prefix2, ... )
autowrap( $class1 => \%info1, $class2 => \%info2, ... )autowrap( $class1 => \%info1, $class2 => \%info2, ... )
Register classes whose objects are automatically wrapped when returned by one of the call functions below. If $prefix is provided it will be used as to name the objects.

Alternative is to pass an %info hash for each class. The recognized keys are:

prefix => $string
The prefix string used to name objects of this type.

proto => \%hash
A hash of prototypes to use for the methods when an object is wrapped.

wrap( name => $str, func => \&func, proto => $proto )
wrap( name => $str, obj => $obj, proto => \%hash )wrap( name => $str, obj => $obj, proto => \%hash )
Returns a wrapped function or object. When a wrapped function is invoked then a trace is printed after the underlying function has returned. When a method on a wrapped object is invoked then a trace is printed after the methods on the underlying objects has returned.

See Prototypes for description of the proto argument.

call( $name, \&func, $proto, @ARGS )
Calls the given function with the given arguments. The trace will use $name as the name of the function.

See Prototypes for description of the $proto argument.

mcall( $class, $method, $proto, @ARGS )
mcall( $object, $method, $proto, @ARGS )mcall( $object, $method, $proto, @ARGS )
Calls the given method with the given arguments.

See Prototypes for description of the $proto argument.

trace( $symbol, $prototype )
Replaces the function given by $symbol with a wrapped function.

Prototypes

Note: The prototype string syntax described here is experimental and likely to change in revisions of this interface.

The $proto argument to call() and mcall() can optionally provide a prototype for the function call. This give the tracer hints about how to best format the argument lists and if there are in/out or out arguments. The general form for the prototype string is:

   <arguments> = <return_value>

The default prototype is ``@ = @''; list of values as input and list of values as output.

The value '%' can be used for both arguments and return value to say that key/value pair style lists are used.

Alternatively, individual positional arguments can be listed each represented by a letter:

i
input argument

o
output argument

O
both input and output argument

If the return value prototype has ! appended, then it signals that this function sets errno ($!) when it returns a false value. The trace will display the current value of errno in that case.

If the return value prototype looks like a variable name (with $ prefix), and the function returns a blessed object, then the variable name will be used as prefix and the returned object automatically traced.


SEE ALSO

the Data::Dump manpage

Perl Diver brought to you by ScriptSolutions.com © 1997- 2024