sub foo { # get singular hash reference with any number of key/value pairs my $params = shift @_; # or alternatively, my $params = $_[0] # some may want to dereference (I usually don't) my %params = %$params; return; } # to call: foo( {'key1' => 'val1', 'key2' => 'val2', 'key3' => 'val3' }); # or without braces, foo( 'key1' => 'val1', 'key2' => 'val2', 'key3' => 'val3' );