my %outer = (); $outer{object1}->{object1} = 78; $outer{object1}->{object2} = 45; ... $outer{object2}->{object4} = 13; foreach my $outer_key (sort keys %outer) { print $outer_key, "\t"; foreach (sort keys %{$outer{$outer_key}}) { print $outer{$outer_key}->{$_}, "\t"; } print "\n" }