Do you know why it takes 10 seconds just to compile the script?
I guess you do something in the constructors that you should do elsewhere.
Try profiling before rewriting. Devel::DProf
I've done profiling, as you suggested, and I found out what I already knew. 90% of the time is taken by loading my monstruous module. I will give Autoloader a chance (only a small fraction of the module is used at one time).