my $arraycount=0; my @array; while(){ #New record so new top level item if($_ =~ /^-/){ $arraycount++; }else{ #force array scalar to be a lower level array. push @{$array[$arraycount]}, $_; } }