in reply to Passing variables between packages

If you're passing the globals around because they really are singletons in your app, then make wrapper singletons. In your main:
MyDatabase->configure(...); MyCGI->configure(...); MyTemplate->configure(...); ... my $action = MyCGI->get_param('action'); if ($action eq 'start') { view('start'); } elsif ($action eq 'finish') { view('finish'); }
And so on. Configure your singletons, then let your modules also use those same singletons.

-- Randal L. Schwartz, Perl hacker
Be sure to read my standard disclaimer if this is a reply.