if(scalar(@$aoa) == 2){ #<--------- chomp $aoa->[0]; $y=$aoa->[0]; # <-----grabs "Section1" $Config{$y}=undef; # <-------Assigns undef to it. return $key; #### sub deparse { my $aoa=shift; my %key; for $x (0..$#{$aoa}) { if(ref($aoa->[$x])) { %key=(%key, %{&deparse($aoa->[$x])}); } else { chomp $aoa->[0]; my $y=$aoa->[0]; if (ref($aoa->[1])) { my %C; $C{$y}=deparse($aoa->[1]); return \%C; } my %C; $C{$y}=$aoa->[1]; return \%C; } } return \%key; } __OUTPUT__ $VAR1 = { 'Section1' => { 'key2' => 'value2', 'key1' => 'value1', 'key3' => 'value3' }, 'Section2' => { 'key5' => 'value5', 'key6' => 'value6', 'key4' => 'value4' } };