Why does Perl not have overloaded functions?

Q

Why does Perl not have overloaded functions?

✍: Guest

A

Because you can inspect the argument count, return context, and object types all by yourself.
In Perl, the number of arguments is trivially available to a function via the scalar sense of @_, the return context via wantarray(), and the types of the arguments via ref() if they're references and simple pattern matching like /^\d+$/ otherwise. In languages like C++ where you can't do this, you simply must resort to overloading of functions.

2013-09-06, 2022👍, 0💬