I've spent 8 years as a full-time Perl programmer; and I've been writing code in Python for around five years now... and I'd say Python, hands down.
Choosing a programming language is always a bit subjective; great programmers can write good code in just about any language; and bad programmers can write bad code in any language. It's really a question of how easy or difficult things are to do; which usually depends upon what you're doing. So, in many cases, it comes down to personal experience and personal preference.
As an younger programmer, I felt that the two languages were roughly equivalent; as an older programmer, I consider Python simpler, easier, and more concise.
Perl has the motto: "there's more than one way to do it"; Python tries to find one good way, and get everyone to do things that way. Part of my frustration with working with Perl was constantly wondering why someone wrote something the way they did; were they missing something very obvious, or was I missing something very subtle, or was there a bit of both?
By contrast, Python code usually does exactly what it looks like it does; with fewer choices to make about how to do things, people end up doing things more or less in the same way, which makes code easier to share and understand.
Perl tries hard to guess what you intended to write, and do that for you. Python keeps the rules simple and concise. In Python, if you don't get things right, nothing works at all. In Perl, you often get something related to but not quite what you really wanted; and you might not even recognize it as a bug until months later.
On my first day at a new job, I made one simple program run ten times faster: by changing the word "for" to "while". The two loops were both processed the file one line at a time; the first one loaded the entire file into memory as a side effect of being "evaluated in list context".
Python's grammar can be defined on a single sheet of paper; Perl's grammar had so many odds and ends and special cases that the code to parse it included a section that is actually called a "Guesser" by the people who wrote it. It may still; I haven't worked with it in years.
It was so bad that even the people who wrote it used to joke that "Perl (the Perl programming language, spelled with a capital 'P') is what perl (the UNIX version of the perl program, spelled with a *lowercase* 'p') does": in other words, no one could predict exactly what would happen when you ran something.
In one case, I ran into a situation where, when trying to check the syntax of a Perl program, I ended up trying to connect to a production database instead. When I asked the experts how to prevent doing that in the future, they pointed out that there wasn't one: import statements are always run, and according to the definition of the language, must always be run, because the imported module might want to change the meaning of Perl itself.
That's around when I switched to Python.
Python has functions with named arguments, generators, exceptions, context handlers,
classes, with modules and exception handlers built into the language. I have never seen a program in Python written in the shape of a snake, nor one in the shape of any of the cast or crew from Monty Python. I consider these good things.
Perl has a dozens of special variables, needless semi-colons and braces, awkward syntax, "list versus scalar context", sigils, "magic", die/eval, BEGIN, END, CHECK, and CODE blocks, "packages"
and "typeglobs". I have seen Perl code written to make the shape of a camel. There exist "obfuscated Perl contests" to tax the minds of Perl experts. I've never heard of an "obfuscated Python program"; and I hope I never do.