All the comments above are good to listen to.
Ovid makes some good points.
I have noticed the following when I have been in a situation where using objects or not using objects would both fit the situation. From what I have seen, method calls are 15 to 20 percent slower -- but that is just the call. If actually calling your function or method accounts for only 1 percent of your program execution time, then it really doesn't matter. If you are doing something in a tight loop, then method calls might get to be heavy. However, even in this situation you could use
Memoize (ala
Dominus) with an intermediate sub, to lighten the method calls for you.
In the end, inheritance, extensibility, cleanliness, and functionality seem to overcome any problems that there might be with speed.
my @a=qw(random brilliant braindead); print $a[rand(@a)];