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); }