One thing to consider when selecting the "right tool" is how well you know that language. That will have alot of impact on what you are doing. For example let's say you have a problem and technically C++ would be the best language to use. But you know perl better, and will be able to produce high quality code in less time if you code it in Perl. Then maybe for you Perl is the right tool.

When selecting the right tool you have to consider the resources and not just what a particular Language brings to the table. If no one knows java in your company, then why code something in java, even if it is the best language for that applicaion.