in reply to passing arguments

I agree with your principle of keeping things as simple as possible. Simple is the right solution 99% of the time. But I disagree with your restriction of a single parameter 100% of the time. Technically, I would be in compliance with your rule if I passed in a hashref with 10 key=>value pairs. I just don't think that it makes sense to ALWAYS limit yourself so severely.

As pdcawley mentioned, a lot of what you are trying to achieve can be done through good OO design principles and inheritance. And for me, I'll take the speed hit for a method call any day if it makes my life easier as a programmer. Is anyone going to notice if my program takes 100ms longer because of OO method lookups? I really don't think so. In the end, I always come back to doing what makes sense for the programmer. The latest hardware can usually take care of any speed problems.