What you've described is a people problem, not a technical one. For whatever set of reasons, the organization has descended into being a "blaming" culture. The technical aspects are just symptoms. Exchange Perl for Java, and it'd be "same song, second verse".
If it's easier for people to stand around and point fingers at each other than it is for them to work together, look towards what's incenting (and what's not punishing) that behavior. Chances are good that a substantial part of the cause is higher up the organizational food chain than you've been looking at (or can see). There may be a protracted executive turf war going on. People aren't incented to work together because that might mean less blame for one exec to heap upon another. People aren't punished for pointing fingers because that's exactly what the execs are doing. If it's been going on, unresolved, for quite a while, most of the good developers will have moved on, and you might consider doing the same.