in reply to Dynamic package name (?!)

If these modules were classes, you could load them with Class::Load and then call static methods on them instead of accessing package globals directly.

(You can load them with Class::Load even if they aren't classes.)