|Just another Perl shrine|
Re: Polymorphism?by plaid (Chaplain)
|on Jul 10, 2000 at 00:26 UTC||Need Help??|
Both autark's and crazyinsomniac's answers are what you're looking for, but just to clarify your question a bit, the term you're looking for isn't polymorphism.
Polymorphism generally refers to the ability to call the correct method on an object depending on its class. It also provides the ability to override methods in derived classes, and still be sure you're getting the one you want.
The term you're looking for is function overloading, which allows for functions of the same name in the same namespace to co-exist, provided they each have different prototypes. This can be achieved as mentioned above, by looking at @_ and if/elsif/else your way through it, or loop, or whatever you want.
What you -can't- do in perl is something like this:
on perl 5.005_03 (someone correct me if the behavior is any different in 5.6).
So, in a sense, you can accomplish what you want to in perl, but not the way you can in other languages such as C++. What you're doing in perl doesn't fit the definition of function overloading, since it's actually calling the same function every time, instead of choosing a function to call based on parameters.