And if not refactor, at least switch to using pseudo-named arguments by expecting key/value pairs and appending those to defaults.
sub womble {
my @defaults = (
fleem => 12.3,
alarm_low => 99,
alarm_hi => 'naked ernest borgnine',
alarm_hello => 'nice to see you',
alarm_good_evening => STOP_STEALING_PYTHON_GAGS,
quux => 19.95,
);
my %args = ( @defaults, @_ );
if( $args{ quux } > 15 ) { enable_flux_capacitor(); }
## ... rest of womblification routine
}
womble( quux => 1.21 * GIGAWATS_PER_MICROFLEEM,
alarm_low => 42, );