in reply to Intelligent Package Interaction

Create a well known place where you will store references to the active classes and objects; this can be a package variable, singleton objects, a registry or whatever.

Here's a sketch using a package variable:

package MyFramework::DBIClass; sub setup { $MyFramework::ActiveDBIClass->connect_database } ... package MyWebApp; $MyFramework::ActiveDBIClass = 'MyWebApp::DBIClass';