# Current data structure $ADDRESS{Last1,First1}{Account} = ""; # Blank $ADDRESS{Last1,First1}{First} = "First1"; $ADDRESS{Last1,First1}{Last} = "Last1"; $ADDRESS{Last1,First1}{Address} = "123 Home St"; $ADDRESS{Last1,First1}{Phone} = "(222) 333-4444"; $ADDRESS{Last1,First1}{Email} = "flast1@this.com"; $ADDRESS{Last1,First1}{Description} = "This\nThat\n"; $ADDRESS{Last2,First2}{First} = "First2"; ... $ADDRESS{Last999,First999}{Account} = ""; # Blank $ADDRESS{Last999,First999}{First} = "First999"; # Desired data structure $ADDRESS[0][0] = ""; # Blank $ADDRESS[0][1] = "First1"; $ADDRESS[0][2] = "Last1"; $ADDRESS[0][3] = "123 Home St"; $ADDRESS[0][4] = "(222) 333-4444"; $ADDRESS[0][5] = "flast1@this.com"; $ADDRESS[0][6] = "This\nThat\n"; $ADDRESS[1][0] = ""; # Blank $ADDRESS[1][1] = "First2"; ... $ADDRESS[998][0] = ""; # Blank $ADDRESS[998][1] = "First999"; ... #### my $count = 0; foreach my $name (keys %ADDRESS) { $row[$count][0] = ""; $row[$count][1] = $ADDRESS{$name}{First}; $row[$count][2] = $ADDRESS{$name}{Last}; $row[$count][3] = $ADDRESS{$name}{Address}; $row[$count][4] = $ADDRESS{$name}{Phone}; $row[$count][5] = $ADDRESS{$name}{Email}; $row[$count][6] = $ADDRESS{$name}{Description}; $count++; }