|Perl: the Markov chain saw|
I "had" to learn Perl during my work, but I really like the language now.
However, there are several aspects, which I don't like that much:
1) Perl on Windows. I don't see any "real" applications being written in Perl for Windows, probably in part because you have to install Perl on Windows first. Linux usually comes with a Perl installation. On my local Windows machine I don't even have Perl installed (because I don't need it there, which - for me - also shows that it's not being used that much on Windows).
2) CPAN is great. What is not so great in my opinion is the documentation and usage of the cpan shell. I often saw questions on perlmonks on how to install / uninstall specific versions of a module. Sure, there are ways to do that, but it's not really trivial.
3) Threads in Perl. Even with Perl 5.10 I often see a ""*** glibc detected *** double free or corruption" when using threads. I suspect that this is related to some older versions of CPAN modules that I'm using, but it's just for my specific situation something I don't like about Perl. This is why I ported many of my perl scripts to use processes / fork instead of threads.
4) Some of the general language constructs. I don't know about all the special symbols and in general stick to a more "C-like" programming style in Perl. I also don't like Perl's built-in OOP mechanism, which is why I use Moose. So there are ways to use Perl the way I'd like to use it, but it also means that it sometimes hard for me to read and understand existing Perl code.
I now use Perl a lot and I think for certain problems it's the "best" language to use. However, the problems I mentioned above (and some more) don't make me feel like it's the "perfect" programming language.