The singleton class idea is probably best, but here is
another option: your main script could create your one
instance and assign it to a global variable, which the
other modules could access at will. Something like the
following then would be at the top of each file:
use Login; use Config;
our ($login, $config) = (Login::new(), Config::new());
This is in some ways less elegant than the singleton,
but it leaves you the option that some modules can
create their own instances if desired, but others can
use the main instance.