package My::DBU; use strict; use warnings; use diagnostics; use CGI::Carp; use DBI; sub new { my $class = shift; my $self = bless {}, $class; my $dbh = shift || return undef; $self->{dbh} = $dbh; return $self; } sub begin_work{ my $self = shift; $self->{dbh}->begin_work; } sub execute { my $self = shift; my $query = shift; my $sth = $self->{dbh}->prepare($query); my $rows = $sth->execute or die $DBI::errstr;; return \$sth; }