I have written code in Perl and Python professionally for a long while. Perl for almost 10y, then Python for over 15y.
Perl had (has) many issues with the fact that there too many ways to do the same thing g, which leads to very hard to maintain codebases in the medium to long term. It is possible to write unmaintainable code in Python, but you almost need to be a professional idiot to accomplish that, and yes I have met a few of these. They usually do not stay employed too long.
Some of my issues with Perl:
- too many ways of doing simple things.
- very cumbersome handling of objects.
- clunky management of third part libraries.
- code that often becomes unreadable over time.
Maybe things got better in recent years, but that's mostly too little, too late. I was looking forward to Perl 6 for years but just moved to Python.
Perl has solid regex support, but if you do all your text processing through regex you have big problems. You should use them sparingly.
A lot of these Perl issues were embraced by Groovy, and a lot of projects that started with Groovy at their cores ran away from it. See Graddle for example.
On the other hand Python is not free of issues. The 2 to 3 transition took much too long, but the improvements to the language are very good. My favorite part is the (optional) stricter typing provided through mypy and other tools.
The packaging system is not perfect but better than Perl's one ever was. My main gripe is that there is no way to update old packages to flag newer, formerly unknown, compatibility issues. They need to add support for that, as well as a way to discard compatibility issues: some package have one rarely used feature with a compatibility issue, and most don't care. The Azure packages are a huge offender for example.
Anyhow, I used to like Perl, but I also used to like junk food until I experienced better options. Kind of like when students love Coors Light until they try higher quality beers, the stuff from Europe or from microbreweries.