\%data = { customer_number => $custno, country => $country, ticket_type => $ticketsystem }; $test_class = "Utils::Testclass::MyTest"->new($data); <\code>

Utils::Testclass::MyTest has correspondig accessors like this:

has 'customer_number' => ( is => 'rw', reader => 'get_customer_number', writer => 'set_customer_number', predicate => 'has_customer_number', clearer => 'clear_customer_number', ); has 'country' => ( is => 'rw', reader => 'get_country', writer => 'set_country', predicate => 'has_country', clearer => 'clear_country', ); has 'ticket_type' => ( is => 'rw', reader => 'get_ticket_type', writer => 'set_ticket_type', predicate => 'has_ticket_type', clearer => 'clear_ticket_type', ); #### map { $data{$_} = '' unless defined $data{$_} } keys %data; #### has 'country' => ( is => 'rw', reader => 'get_country', writer => 'set_country', predicate => 'has_country', clearer => 'clear_country', trigger => sub { my ($self) = @_; if ( $self->get_country eq '' || not defined($self->get_country) ) { $self->clear_country; } } );