"CGI and ASP and PERL do basically the same thing."
Not quite. CGI is a standard of sorts, that allows programs to be run by webservers. You can have CGI used by any programming language that supports it: Perl, Python, Ruby, PHP, even C++ if you do some exotic programming.
ASP (I'll talk about ASP.NET actually) is really a platform for writing dynamic websites/web applications. Complex websites have their HTML autogenerated, and you can use ASP (typically by using a .NET language like C# or VB.NET) for a programming language.
Perl is a general purpose language. It's extremely useful for text manipulations, but because it is basically a very powerful and vast language. That makes it suitable for everything from basic scripts to whole web applications. You typically use Perl for web applications as a CGI script or with mod_perl (for Apache webservers). Perl is comparable to C# in that they are programming languages.
"what is PHP?"
Another server side programming language. Unlike C#, or Perl, it is not intended to be used outside of web programming. It's very popular especially because it is both free and has a very low barrier of entry.
"do i need to know them all"
No. You need *a* server side language to write web applications. Note my use of the singular in language. You may use more than one in very powerful/commercial programs, but to start with you can rely on just one.
"so which should I learn."
Take a good stock of web programming languages. You get PHP, Java, ASP.NET (C#, VB.NET), Perl, Python, and Ruby. I recommend Python or Ruby because they are high level languages, are general purpose languages, are mainstream, and have a low barrier to entry. PHP comes next as my recommendation, or perhaps C#/ASP.NET.
"I also want to learn C++"
C++ is a general purpose programming language. It's more suitable for lower level/systems programming tasks. It's very powerful, and it can be used to write everything from operating systems to a webserver or modules for a webserver. It's used to write quite a bit of programs used on your computers. It's a compact language, but very difficult to master.
"Object oriented whatever that means ( i know u can make games in it)"
Object oriented just reflects a programming paradigm. It's no magic bullet or one size fits all solution.
"Is flash object oriented too?"
I don't recall, but I think it is to some extent. Do you have the notion of classes and objects (I think you do)? Then you have the ideas of object oriented programming.
"Blah. where can I learn it without wastin all my cash"
Google. Please.
If you're going for C++, get a book from ACCU's review list (http://accu.org/index.php/book_reviews?url=search.xqy?field=subject&term=beginner's+c%2b%2b ). I recommend C++ Primer by Stanley Lippman or Accelerated C++ by Koenig.
If you're going for Python: http://python.org/ . Really spend some time there, as they have quite a bit of documentation and resources.
PHP: http://php.net/
Google for the other programming languages...