One perl-specific thing I find with big jobs is that because perl coding styles can vary, it can be very useful to have a general style guide for the project.
Here is an example to get you started that I've been accumulating over several years specifically for very large perl code trees.
In general,
comment more and
use simpler code than you might if it's a small application.
Some big projects take a while before enough pieces come together to show a snazzy demo system. If you go with CVS, perhaps
something ( blatant promo :) to keep management comfortable work is actually moving forwards.
Test lots, and test first if you can, but if you get REALLY stuck, and can't think of a good way to test something, don't let it stop you or divert weeks rigging complicated emulation systems, at least not at first. Consider a small example or demo script which, while not testing formally, will allow you to run some tests runs on a particular subsystem, and just debug it using the perl debugger.
If you go the mod_perl route, make as many pieces testable WITHOUT having to run it inside mod_perl as possible. perl -d test_script.pl is an easy way to find bugs. Doing the same on a mod_perl module is often harder without spending large amounts of time writing complicated emulation code.
Also, write down and write up. By this I mean, write a sufficiently thorough framework to handle the entire system early, and if you find some task or subsystem that can be completely seperated from the rest of the system, stop and get that written and completed first.
You'll have a nice big framework for everything to fit at the top, and a toolkit of standalone modules/widgets at the bottom, and work your way towards the centre.