use strict; use warnings; use HTML::Template; my $t = HTML::Template->new( filehandle => \*DATA, die_on_bad_params => 0 ); my ( $average, @fullstars, @emptystars ); $average = 3.7; # hard-coded for testing for ( 1 .. 5 ) { if ( $_ <= $average ) { push( @fullstars, 1 ); } else { push( @emptystars, 1 ) } } if ( int($average) != $average ) { $t->param( halfstar => 1 ); shift(@emptystars); } $t->param( fullstars => \@fullstars, emptystars => \@emptystars ); print $t->output(); __DATA__