tie my %flat, "FlatHash"; $flat{Monkey}{habits} = "Eating"; $flat{monkey}{habits} = "Scratching"; warn Dumper(\%flat); __END__ Ultimately I'd like the final datastructure to be something like: $VAR1 = { 'monkey' => { 'habits' => ['Eating', 'Scratching'] } };