Maybe
jdporter's
Hook::WrapSub would be useful
here? Something like:
use strict;
use warnings;
use DBI;
use Data::Dumper;
use Hook::WrapSub qw( wrap_subs unwrap_subs );
wrap_subs \&log_prepare, 'DBI::db::prepare';
wrap_subs \&log_execute, 'DBI::st::execute';
my $dbh = DBI->connect(
qw(DBI:driver:database:host user pass),
{RaiseError=>1}
);
my $sth = $dbh->prepare('select foo,bar from qux');
$sth->execute();
$sth->finish();
$dbh->disconnect;
unwrap_subs qw(DBI::db::prepare DBI::st::execute);
# just announce we were called and dump our args
sub log_prepare {
print "prepare called:\n", Dumper \@_;
}
sub log_execute {
print "execute called:\n", Dumper \@_;
}
jeffa
L-LL-L--L-LL-L--L-LL-L--
-R--R-RR-R--R-RR-R--R-RR
B--B--B--B--B--B--B--B--
H---H---H---H---H---H---
(the triplet paradiddle with high-hat)