in reply to Reports using perl

Here's something that I think does what you want. I'm sure all this can be done in place of that %sorted_by_attribute hash, but I'd need to look over the code some more to figure it out. Anyway, just replace your "print" loop with the following, then loop through %newhash to get at your data:
my %newhash; foreach my $attribute (sort keys %sorted_by_attribute) { my $individual_values = $sorted_by_attribute{$attribute}; foreach my $value (keys %$individual_values) { my @systems = @{$sorted_by_attribute{$attribute}{$value}}; foreach $system (@systems) { my $key = $HoH{$system}{'Group'}; my $str = sprintf "%s = > %s\n", $HoH{$system}{'System Name'}, $ +value; push @{ $newhash{$attribute}{$key} }, $str; } } } print Dumper (\%newhash);
I'm sure the $key and $str variables can be done away with and those expressions put directly into the push statement, but it would be rather ugly. Anyway, I hope this does what you want.

--

There are 10 kinds of people -- those that understand binary, and those that don't.