Perl is more of a scripting language and based on who you want to work with, Python would actually be a better choice, but you could learn both.
C++ can facilitate most of C. Learning C++ will help you with C, just remember that C is imperative, procedural based language and C++ is object oriented. The great thing is that most of C++ is somewhat backward compatible with C++, therefore you can use most of ANSI C inside C++, such as printf(),scanf(),malloc(),free(). Although you should usually keep C in a separate file from C++, but sometimes, you need a specific function.
Java can be very useful, but I believe that Python/C,C++ would be more beneficial in the area you are looking at. If you get into intense numerical analysis, you will probably have to be familiar with Fortran as well...and no it is not a dead language.
@Techwing:
Have you programmed intensively in Python? There are huge benefits of using Python. In our aerodynamics research, we use Python as an intermediate scripting language to run our CFD simulations. It's a great language. I believe YUM (package install used in RHEL, CentOS, Fedora) is python based to some degree. There are modules for that can help with nearly everything. Yes it has it's limitations, but having the benefit of interacting with other languages is a huge plus. Some of the modules I use everyday are NumPy, Matplotlib, PyMPI, and several others. If I need to do a quick job, Python is usually my goto language. If its computationally intensive, I might move to C/C++/Fortran. But I might still give it a Python interface so that I can use those routines again with less time writing programs and more time getting answers. There are many scientific applications on the open source market that implement a Python scripting engine for in program use.
I'm just saying Python isn't as bad of a Language as people make it out to be. By the way Java isn't really interpretted. Java uses JIT compiling and runs in a virtual machine where general Python is interpretted.