I am a C/C++ programmer and before my professional Perl experience, every problem seemed to be solvable with a C/C++ solution. I have been doing Perl for 18 months with a team of fanatical/religious Perl developers. I guess that is where the term "Perl monk" comes from. They were are blind as I was but instead of seeing C/C++ solutions, every problems for them where solvable with Perl.
It was extremely frustrating to be imposed using Perl when it was obvious that C/C++ would have been a superior choice. I was laughing in my beard when I saw the rest of the team spending energy for weeks to optimize some Perl code and they were excited to finally have increased the performance from 12 iterations/minute to an awesome 18 iterations/minutes when C would have given them thousands of iterations/minutes without effort.
The most horrible part of Perl that I have witnessed is object-oriented Perl with Moose and its huge module dependencies. Its seems like you need the include the whole universe to use some of the most complex Perl modules.
Back then, I hated Perl but since dust has settle down, I have now made peace with Perl and even surprise myself choosing Perl for some tasks that I need to get done such as parsing mbox files. The thing is Perl is the best choice for some specific tasks. For huge software development in Perl (Yes I have seen that. Horrible, absolutly horrible), the problem is that if you have a function supposed to take some numeric input, crunch it through some math formula and give you the result, with Perl, you could pass the string "Potato and carrot" and the function will happily crunch it and give you a meaningless result. Now, try to find out the problem in hundreds of thounsands of lines of Perl code. Good luck!