Yes, subroutine variables *are* like underwear.
But parameter names *aren't* like underwear.
Because they're not (primarily) subroutine variables.
So they're like the labels on the knobs, dials, and buttons of your favourite
elctronic device. They're part of the *interface*, not (primarily) part of the
implementation. They should be chosen with care, and not changed on a whim.
I do, however, understand the desire to allow them to change, or to be
somewhat "fuzzy" (i.e. "filename" vs "file_name" vs "file"). And I agree that
it could
be a very useful facility.
But your proposed syntax is...err...less than ideal.
If we were to have this, I'd far rather we use the existing mechanism
for annotating variables. Namely: properties.
For example:
sub load_data ($filename_tainted is named('filename'),
$version_input is named('version','ver') //= 1)
{...}
Damian