I'd suggest a lazy language as well, Haskell being the obvious choice. Having lazy infinite lists changes the way you think.
Apart from the obvious commercial benefit, if you have C++ and Python I don't really see the need for Java, but I might just be being bigoted there.
Perl could be substituted with Awk - I've had this debate and I don't feel strongly about it. Perl is more wide-spread and common, making it a better choice if you want to go hacking things that are there, but I find Awk nicer to program.
I'd also start looking for massively parallel languages of one form or another. The ability to think not just in threads or co-routines, but genuinely in async-parallel is becoming more important.
So that's my $0.02 of free advice. Probably worth what you paid for it.