in reply to Omitted subroutine arguments
My customary strategy, in cases where there are a variable number of arguments, is to pass a single hashref, instead. I have a standard subroutine which is given the argument-list, the subroutine name, and a list(ref) of expected parameters. If any of the key-names in the list are not in the argument hashref, it confesses. (see Carp)
About the only thing I can say about “long parameter lists” is that you get ’em wrong, and you can’t easily see what you did. That leads to a lot of silly-bug debugging time. (a.k.a. “whack-a-head” doh!-bugging, which I thoroughly despise.)