in reply to Inter-package communication

Since you're doing this to try to reduce your memory footprint, you might want to use AutoLoader. (I'm assuming that these are your own modules that you're loading. If they're someone else's and you can't change them, this won't work.) AutoLoader would enable you to split your modules' code up into small subfiles, and only load in the functions that you need, on-demand.

That way, you could simply have all of your 'use' statements, but the actual loading would take place only when the modules were actually needed. Your code would thus be more maintainable, since every time you needed to add function calls, you wouldn't need to worry about "Is Alpha loaded in this case? Is Beta?". Plus, you might save some additional memory, since anything not used wouldn't be loaded at all.

stephen