I typically just have an accessor, similar to yours, for grabbing a dbh. Then I can call it whenever I need to, and never pass around the handle. If you're using Apache::DBI, it's lightweight, and if you are really worried about it you can cache the dbh in $r->pnotes(), which gets automatically cleared after every request.