Are you sure there isn't a mistake somewhere else - maybe post some more context. When I run your example it works fine. Using CGI version 4.44
use CGI;
my $cgi = CGI->new;
my $html = $cgi->TR(
{ -height => '100', -valign => 'bottom' },
[
$cgi->th(['Vegetable', 'Breakfast','Lunch','Dinner']),
$cgi->td(['Tomatoes' , 'no', 'yes', 'yes']),
]
);
print "$html";
OUTPUT:
<tr height="100" valign="bottom">
<th>Vegetable</th>
<th>Breakfast</th>
<th>Lunch</th>
<th>Dinner</th>
</tr>
<tr height="100" valign="bottom">
<td>Tomatoes</td>
<td>no</td>
<td>yes</td>
<td>yes</td>
</tr>