All three are general purpose languages that compile the source code into a platform independent bytecode format. While Java forces you do that compilation manually before you can run anything, Python does that automatically on execution and also stores the resulting bytecode for later resuse, and Perl only uses ist bytecode internally without ever showing it to the user (that I know of, anyway).
There are very few things that couldn't be done with any one of the three languages by principle. The main difference is in the style of each of them, and in the types of developers that are attracted to them. Java attracts the corporate drones that fall for all the popular buzzwords, Perl is for people who want to feel like l33t h4x0rz, while Python is mostly used by those who simply want to get their job done. I hope my bias doesn't shine through too heavily here... ;)
The primary advantage of Python is that it is extremely easy to read, understand, and learn. The main design goals were simplicity and elegance. The object orientation is fully integrated into the language, without standing in your way when you don't need it (the same is true for other advanced features). It is also very easy to combine Python with other languages, and to write extensions in C or C++ when some parts of your application need more performance than an interpreted language can deliver, both of which can be a pain with Perl and Java.
In other words, your last question is likely to remain unanswered. The more interesting question is rather whether your mind is ready for the pythonic way to do things. The Python culture [python.org] makes programming easy for those who enjoy contemplating the following design principles, and hard for those who don't:
1. Beautiful is better than ugly.
2. Explicit is better than implicit.
3. Simple is better than complex.
4. Complex is better than complicated.
5. Flat is better than nested.
6. Sparse is better than dense.
7. Readability counts.
8. Special cases aren't special enough to break the rules.
9. Although practicality beats purity.
10. Errors should never pass silently.
11. Unless explicitly silenced.
12. In the face of ambiguity, refuse the temptation to guess.
13. There should be one -- and preferably only one -- obvious way to do it.
14. Although that way may not be obvious at first unless you're Dutch.
15. Now is better than never.
16. Although never is often better than right now.
17. If the implementation is hard to explain, it's a bad idea.
18. If the implementation is easy to explain, it may be a good idea.
19. Namespaces are one honking great idea -- let's do more of those!
[edited by: bird at 11:01 pm (utc) on July 15, 2002]
It is also interesting to note that Python is a very "expressive" language, which means you need very little code to implement a certain amount of functionality. On average, the functionality of one line of Python would require something between 5 and 10 lines of C/C++ (similar ratios are probably reachable with Perl, but not with Java).
The main product we are selling has around 60k lines of Python code (and around 40k lines of C++ and other Java stuff) in the financial planning sector. Python has a nice integration with CORBA using OmniORB, and it allows us to write different components in different languages. However we end up writing most of our stuff in Python because it is so easy to use :)
The ODP also has a long list of FAQs, Help, and Tutorials [dmoz.org] to chose from.
Unfortunately, I have no basis to reccommend any of those from own experience. It's a while that I was a newbie, which makes it quite hard to judge the quality of introductory tutorials myself... ;)