Well done, Ovid!
IMHO, it should be in the CPAN, no doubt, and for two reasons:
It is useful per se, because it will help to make
my scrips more clear.
It is a documentation aid, since it will give a clear
indication of the parameters to be given. Prepending a call
to wrap before each function will clarify
which parameters to use, without looking at all the sub's
code. For this reason, I
would change "names" into "parameters", but it's just a
personal thing.
However, I have some questions about the module implementation:
What about the overhead? I am not too well versed in Perl
internals, but I have the feeling that this wrap is going to
cost my subs a dear price in performance.
For completeness, I would add a check for unwanted
parameters, i.e. if I call the sub with a named parameter
that was not defined, I should get a warning. I know that
it will generate even more overhead, but there are cases
where precision is more important than speed. Is it feasible?