in reply to
Multiple tasks in same_script, or multiple_scripts?
If i were you i'd look into CGI::Application
( tutorial here )
and cut the time down in half.
I'd also check out our tutorials section for an excellent HTML::Template tutorial, cause HTML::Template incorporates easily into CGI::Application.
You should also read Scaling single-script CGI applications
After you've read all of the above (or at least skimmed this and this), it should be more clear to you how to organize this.
Personally, i'd use base everything on CGI::Application, and have two scripts/packages, one for users, and one for administrators.
Since administrators would like to do a lot of the same things regular users would, i'd make the "administrator" package a subclass of the regular user package.
P.S. CGI::Application kind of forces (strong word) you into creating a module and inheriting from CGI::Application
update: here is an example of using CGI::Application
along with File::Cache and cookies for session managment.