in reply to Confused by reference sample code

I read that tutorial and I can see why you are confused. First, check out the HTML::Template perldoc for the section on the TMPL_LOOP tag. It shows the actual structure that is being used for TMPL_LOOP. If you want to use Data::Dumper, you can see it for yourself:
use Data::Dumper; use CGI qw|:standard|; use HTML::Template; # the fruit data - the keys are the fruit names and the values are # pairs of color and shape contained in anonymous arrays my @loop; my %fruit_data = ( Apple => ['Red, Green or Yellow', 'Round'], Orange => ['Orange', 'Round'], Pear => ['Green or Red', 'Pear-Shaped'], Banana => ['Yellow', 'Curved'], ); print header(); my $tmplObj = HTML::Template->new(filename=>'..\..\tmpl\fruit.tmpl') +; for(keys %fruit_data){ push @loop, {name=>$_, color=>$fruit_data{$_}->[0], shape=>$fruit_data{$_}->[1] }; } my $whatIamReallyPassing = { fruit_loop => \@loop }; warn Dumper $whatIamReallyPassing; $tmplObj->param($whatIamReallyPassing); print $tmplObj->output;

Celebrate Intellectual Diversity