The DBI->connect_cached method does all that too. Apache::DBI adds some web-specific stuff, like disabling disconnect() for porting of old CGI scripts, avoiding caching during server startup, and rolling back any unfinished transactions that could be left at the end of a request if your code died.