What if you need the same functionality but it would be convenient to make some parameters be optional? In C++ you'd do that with function overloading. In Perl you'd do that while processing your arguments. The existence of a different way to do it in Perl doesn't make function overloading the wrong thing to do in strongly typed languages such as C++ and Java.