my ($self, %values) = @_; # we're being passed a hash so let's treat it like a hash
my ($tree, $messageNum, $messageText) = @values{qw/tree messageNum messageText/};
####
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};
}
}
####
{
my @paramNames = qw/tree messageNum messageText/;
sub new {
my ($self, %values) = @_;
validateParams(\%values, @paramNames);
my ($tree, $messageNum, $messageText) = @values{@paramNames};
}
}