sub validateParams { my ($data, @paramNames) = @_; die "first argument to validateParams must be a hash" unless ref $data eq 'HASH'; my $expect_count = @paramNames; my $actual_count = keys %$data; die "incorrect number of parameters - expected $expect_count, got $actual_count" unless $expect_count == $actual_count; for my $name (@paramNames) { die "parameter $name missing or undefined" unless defined $data->{$name}; } }