I agree that its probably best for you to find a project your interested in and then learn the language that is used in that project.
However, if you just want to learn a language with no real project in mind then I would say it depends on what you want to learn, or what you want to do? For example, if your not too worried about some of the lower level stuff, but would rather create nice GUIs then C# or Java (maybe C++) would probably be the best place to start.
Having said that, I found C++ a complete mess when I first started; I didn't really understand what was happening. But having started to learn C, C++ seems to make more sense and so sometimes learning the lower level stuff can be beneficial. As for C# / Java, I found that they were very easy to use but weren't that flexible sometimes, largely due to the lack of pointers. Hence I found that I was often writing a lot more code than I would have in C or C++ to accomplish a particular task. However, that is definitely task dependent. I also found that with C# / Java I didn't feel I "learnt programming", most likely because they are high level languages, I think. So it does completely depend on what you want to learn/do.
In terms of languages like Perl or Python, I believe they are more scripting languages than programming languages, as I don't believe they use a compiler, they just use an interpreter? But I am unsure so perhaps someone else can clarify that - I've never learnt Perl or Python. If I'm right, then I would say if you want to learn programming, a scripting language probably wouldn't the best place to start.