in reply to Complexity of API argument passing
If the routine is being used by other programmers, the requirements for generous argument handling jump immediately. You should process all sensible input arrangements so long as those arrangements don't compromise the routine's efficiency. I personally dislike any mechanism that requires a caller to pass arguments that tell the routine what other arguments are being passed, preferring things that can be deciphered via ref() as you mention.
I definitely don't go to multiple front-end functions for a routine unless I'm in a maintenance situation where I can't change the input handling of the target routine. I do use such arrangements where I need different output formats, though, if the output format can't be determined just on the basis of wantarray.
|
|---|