my @Tests = ( { 'desc' => 'failure', 'params' => {}, 'result' => "some error msg", }, { 'desc' => 'success', 'params' => {bar=>1, baz=2}, 'result' => "ok", }, ); foreach my $test (@Tests) { ok( sub { Foo->new($test->{params}); 'ok'; }; 'ok', "test new() " . ( exists( $test->{'desc'} ) ? " - $test->{'desc'}" : '' ) ); }