in reply to
Poor Man's Prototyping?
Well, prototyping implies type-checking as well, and you're not really doing that. (In other words, you're not specifying whether you're expecting a scalar, an array, a reference to something, etc.) You've really implemented a way of naming arguments, which is relatively common. Probably the best-known example is the CGI.pm module.
A search of the monastery for "named sub arguments" turns up tons of information. Try a few of these:
And a couple hundred more...