my @outer = (); my $inner = []; my $n = 0; while () { chomp; push @$inner, { DATA => $_ }; if ($n == 1) { push @outer, { INNER => $inner }; $inner = []; $n = 0; } else { $n++; } }