in reply to OO, inheriting functions from other packages

You will want to pass the $db into your Blah::Project instances. A Blah::Project has-a Blah::DB. So, you need to hand the Blah::Project the instance of Blah::DB that it's supposed to use.

A few quibbles:

You weren't wrong ... it just looked weird. :-)

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

Then there are Damian modules.... *sigh* ... that's not about being less-lazy -- that's about being on some really good drugs -- you know, there is no spoon. - flyingmoose

I shouldn't have to say this, but any code, unless otherwise stated, is untested