for Template Toolkit this macro will do it
This does it using CSS classes for coloring but setting it in a different way works as well.
create a block macro
[% MACRO alt_color(loop_count) BLOCK %]
[% IF loop_count % 2 == 0 %]
color1
[% ELSE %]
color2
[% END %]
[% END %]
in your template you do
loop.count is a special property of the iterator
[% FOREACH thing = things %]
<td class=[% alt_color(loop.count) %]>[% thing %]</td>
[% END %]
for H::T you can do
<tmpl_loop name='things'>
<td class=<TMPL_IF __ODD__>color<TMPL_ELSE>color2</TMPL_IF>> thing</
+td>
</tmpl_loop>
you need to make sure you have loop_context_vars set to 1 in H::T to h
+ave access to __ODD__/__EVEN__