sub foo { # requires an even number of parameters in @_ my %params = @_; return; } # to call: foo(qw/key1 val1 key2 val2 key3 val3/);