foreach my $name (sort keys %fruit_data) { # get the color and shape from the data hash my ($color, $shape) = @{$fruit_data{$name}}; # make a new row for this fruit - the keys are names # and the values are the values to fill in the template. my %row = ( name => $name, color => $color, shape => $shape ); # put this row into the loop by reference push(@loop, \%row); } #### print "Here we push a hash onto a list, modify the hash and push again\n"; my @list; my %hash; %hash = ( val1 => 'foo', var2 => 'bar' ); print "contents of \$hash\n"; foreach(keys %hash){ print "$_ = $hash{$_}\n"; } push(@list, \%hash); my $key; print "deref contents of \@list\n"; foreach(@list){ foreach $key(keys %$_){ print "$key = $$_{$key}\n"; } } %hash = ( val1 => 'bish', val2 => 'bash' ); print "contents of \$hash\n"; foreach(keys %hash){ print "$_ = $hash{$_}\n"; } push(@list, \%hash); print "deref contents of \@list\n"; foreach(@list){ foreach $key(keys %$_){ print "$key = $$_{$key}\n"; } }