Is even/odd working in the current version?

Jonathan Vanasco <[email protected]> Wed, 1 Feb 2006 12:17:00 -0500
Newsgroups gmane.comp.lang.perl.modules.petal
Message-ID <[email protected]>
That's pretty much self explanatory

This is in the docs:
=pod
   <table>
     <div
       tal:omit-tag=""
       tal:repeat="audience self/audiences"
     >
       <tr
         class="odd"
         tal:condition="true: audience/odd"
       >
         <td>
           This a odd row, it comes before the even row.
         </td>
       </tr>
       <tr
         class="even"
         tal:condition="true: audience/even"
       >
         <td>
           This a even row.
         </td>
       </tr>
     </div>
   </table>
=cut

i'm getting false for both even and odd
i tried addressing it as even/odd on its own - still no luck

i jumped into the cache to get an idea of what was going on:

(note, i stripped out the non-even odd stuff)

from what I see, it seems to be storing the data in a user defined  
named hash, and operating instructions/details in other hashes  
( repeat, even, odd)

but then its calling get_encoded,the normal function

i couldn't find anything that either:
	stores even/odd into the hash itself
	a line in get_encoded fetch or __FETCH that checks the other hashes  
for special things (other than the modifiers)

so i'm left wondering if its broken or if i'm just completely inept  
with this

can anyone suggest/confirm for me ?

my @array = @{$hash->get ('Audiences')};
for (my $i=0; $i < @array; $i++)
{
	my $hash   = $hash->new();
	my $number = $i + 1;
	my $odd    = $number % 2;
	my $even   = $i % 2;
	my $start  = ($i == 0);
	my $end    = ($i == $#array);
	my $inner  = ($i and $i < @array);
	$hash->{__count__}    = $number;
	$hash->{__is_first__} = $start;
	$hash->{__is_last__}  = $end;
	$hash->{__is_inner__} = $inner;
	$hash->{__even__}     = $even;
	$hash->{__odd__}      = $odd;
	$hash->{repeat} =
	{
		index  => $i,
		number => $number,
		even   => $even,
		odd    => $odd,
		$hash->{__is_last__}  = $end;
		$hash->{__is_inner__} = $inner;
		$hash->{__even__}     = $even;
		$hash->{__odd__}      = $odd;
		$hash->{repeat} =
		{
			index  => $i,
			number => $number,
			even   => $even,
			odd    => $odd,
			start  => $start,
			end    => $end,
			inner  => $inner,
		};
		$hash->{'audience'} = $array[$i];
         $res .= "";
         if ($hash->get ('false:string:1'))
         {
             $res .= "\<div\>";
         };
         $res .= "\
\ \ \<div\>\[\<span\>";
         $res .= do {
             my $res = $hash->get_encoded ('audience/name');
             (defined $res) ? $res : "";
         };
         $res .= "\<\/span\>\ \=\ \<span\>";
         $res .= do {
             my $res = $hash->get_encoded ('audience/even');
             (defined $res) ? $res : "";
         };
         $res .= "\<\/span\>\ \=\ \<span\>";
         $res .= do {
             my $res = $hash->get_encoded ('audience/odd');
             (defined $res) ? $res : "";
         };
         $res .= "\<\/span\>\ \]\<\/div\>\