in reply to Is this Bad form? (DBI)

What I would do is pass $dbh to the various subroutines that use it. For one thing, that's absolutely necessary when doing registry scripts in mod_perl. Also, you end up with subs that don't use globals. That allows you to move your subs around (into packages, other scripts, etc.) and reuse them more easily.

That said, for smaller scripts, I will often put $dbh as a global. *shrugs* YMMV, TMTOWDI, and all that.

------
We are the carpenters and bricklayers of the Information Age.

The idea is a little like C++ templates, except not quite so brain-meltingly complicated. -- TheDamian, Exegesis 6

Please remember that I'm crufty and crochety. All opinions are purely mine and all code is untested, unless otherwise specified.