's directory structure is about the same as what I use. I would add a few specific things:
- One CVS project to rule them all.
- There's no need for MakeMaker or Module::Build if you are not creating packages for people to install on their own machines with an uncertain directory structure. A tarball is probably fine for your internal use.
- I don't put my own modules in the same place that Perl's library and site_perl stuff goes, because that stuff is owned by root. I put mine in a separate place and add it to @INC.
- Don't put ANYTHING that is not an executable or static file under your web server's docroot.
- If you use mod_perl, there's no need to put anything at all under cgi-bin. I just make PerlHandlers and map URLs to them in httpd.conf.