in reply to Perl Code Quality

In my opinion, your self-declared "little bit of Perl knowledge" is likely to be a lot dangerous for this purpose. When judging code, as with anything, the first thing that anyone does is read through it for surprises -- namely, things being done in unfamiliar ways. With Perl, there are many good and many bad ways of doing something. So unless you are very experienced in large-system Perl (a very different beast from small-script Perl!), you're likely to either overestimate or underestimate the hazards of ways of doing things that are unfamiliar to you.

I'm not knocking your Perl ability. It's just that anyone who has used Perl for a while is likely to have experimented with different ways of doing things. Some of those ways will seem great for a while, and will only gradually reveal their weaknesses. Without having gone through a good deal of that process yourself, you just aren't equipped to differentiate between "solid and robust" and "fatally flawed".

My suggestion would be to find a very good, experienced Perl programmer to quickly eyeball the code a few times during the development, and make his -- or her -- feedback a gating factor in the contract. (Perhaps indirectly -- you should have no difficulty in understanding his objections once he explains them to you.)

Perl is a bit unusual in this respect. There are many ways of doing things, which makes it hard sometimes to differentiate genius from impending doom. At the same time, it expands the space of possibilities in such a way that it is actually much easier for an experienced practitioner to quickly tell how good code is. I find that doing Perl code reviews is much, much faster and easier than doing C, C++, or Java code reviews -- you can sniff out the overall quality and style in about 30 seconds, and robust Perl is so idiomatic that finding the troublesome bits is far easier. And although there are many valid ways of doing things, one code base should use one consistently. Fortunately, the different techniques tend to look different enough that it is easy to judge consistency.