in reply to Perl and code reviews

On the project I'm currently working on (or would be if I wasn't surfing PM), we kind of do have a 'build' process, based around CVS tags.

We have so many regression tests that it's impractical for a developer to run them all before checking in a change. Instead, tests for related areas of functionality are grouped into a directory hierarchy. A developer working on a certain piece of functionality will typically confirm all tests in a certain area pass before their code changes are checked in.

An automated process runs the full test suite regularly. If all the tests pass, a tag is applied (moved actually). Another automated process checks out the latest (tagged) code onto the staging server for acceptance testing.

Once the client approves a release, we tag the code they've been testing, package it up and release it to the production servers.