Its not just perl that can do things many ways, its letting the developers do whatever they want thats the problem.
If you set coding and development standards (for any language) then everyone develops against those, these should not be set in stone but reviewed every now and again to make sure that you are working against the language best practices.
If you only have one or two developers then they will (generally) do things their own way and redevelop the bicycle in arcane ways, thats also what developers do.
I have seen bad code in many languages.
One of perl's problem is peoples perception of it as a quick and dirty hack language, so when using it for quick scripts that is the way those people code, rather than understanding the language and coding as they would in their preferred language.
Another issue is that people cut/paste old code from the internet that is not a good example of running and then bodge around it, this happens in all languages.
For example, my ruby code is shocking and would be considered doing things the wrong way by awesome ruby developers.