in reply to data structure

You may want to take a look at all Config modules. Or just to parse by hand the config text in HoH structure:
my @data = <DATA>; my $counter = 0; my $data; for(@data){ if(/^Start/../^End/ && ++$counter){ $data->{$counter}{$1} = $2 if /^(\w+)=(\w+)/ } } use Data::Dumper; die Dumper($data); __END__ output: $VAR1 = { '1' => { 'vardesc2' => 'desc2', 'varvalue2' => 'value2', 'varname2' => 'name2' }, '0' => { 'varname1' => 'name1', 'varvalue1' => 'value1', 'vardesc1' => 'desc1' }, '2' => { 'varnameN' => 'nameN', 'vardescN' => 'descN', 'varvalueN' => 'valueN' } };