sub foo { my %defaults = ( a => 1, b => 2, c => 3, ); # other forms left as exercise... my %params = (%defaults, @_); # ... }