in reply to Nested LOOP in HTML::Template

You want the hash element to be an array of hashes. Use [] to create an anonymous arrayref of hashes out of @inner, then push onto @outer.

use strict; use Data::Dumper; my @outer = (); my @inner = (); my $n = 0; while (<DATA>) { chomp; push @inner, { DATA => $_ }; if ($n == 1) { # here --------------v v push @outer, { 'INNER' => [ @inner ] }; @inner = (); $n = 0; } else { $n++; } } print Dumper(\@outer); __DATA__ data01 data02 data11 data12
Output:
$VAR1 = [ { 'INNER' => [ { 'DATA' => 'data01' }, { 'DATA' => 'data02' } ] }, { 'INNER' => [ { 'DATA' => 'data11' }, { 'DATA' => 'data12' } ] } ];