- raise("wrong number of arguments\n", code => HTTP_BAD_REQUEST)
- if scalar(@$arg_param) != $acount;
- foreach my $p (@$arg_param) {
- $opts->{$p} = shift @$args;
+ foreach my $arg_name (@$arg_param) {
+ if ($opts->{'extra-args'}) {
+ raise("internal error: extra-args must be the last argument\n", code => HTTP_BAD_REQUEST);
+ }
+ if ($arg_name eq 'extra-args') {
+ $opts->{'extra-args'} = $args;
+ $args = [];
+ next;
+ }
+ raise("not enough arguments\n", code => HTTP_BAD_REQUEST) if !@$args;
+ $opts->{$arg_name} = shift @$args;