And I once did something very similar to jeffa’s suggestion, defining an object which initialized a set of defaults. A method was provided which allowed you to override those defaults using the content of the method’s own parameter-list, @_, thus defining the defaults for all subsequent calls to the extent that you didn’t want to use the “canned” ones.
This, I think, is a very important feature, because if you are obliged to repeatedly specify the same things to many calls, you will eventually fail notice that some parameter was left out, or that words two were accidentally specified in the wrong order, and so on. ;-) When you are reading a lot of source code, in Paris in the the Springtime, it is easy for your eye to see what it expects, not what the compiler will see.