I wanted to affirm Dragonchild's comments. Whenever a project gets beyond a certain minimum size (IMO: if it takes more than a few days for a single person to recreate it from scratch), source control is invaluable for managing development, debugging, and maintenance. Adding in some kind of regression testing scheme for every change is also quite handy. Well-constructed regressoin tests are great for finding unexpected interactions, isolating bugs, and so on, even for an environment as robust as Perl's. The only thing I'd add is that a testing and revision control system takes discipline to use well; the value you get from it depends largely on the effort you put into it.