The proxy approach should work. Try creating a class using DBI as the base class. Then re-define the methods that you're interested in; e.g.,
------- MyDBI.pm -------
package MyDBI;
use DBI;
@ISA = qw(DBI);
sub execute{
print "DBI::execute() called with ".join(',', @_)."\n";
$_[0]->SUPER::execute(@_);
}
# other methods here
------- MyDBI.pm -------
The only "problem" with this is that the code that you're trying to debug needs to "use MyDBI;" and not "use DBI;". There's also a problem with things like "my $dbh = DBI->new(foo);" since they need to be changed to "my $dbh = MyDBI->new(foo);". There may be a workaround for this but I'm not that good with Perl OOP.
--perlplexer
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|