in reply to Array consolidating values

use warnings; use strict; my @servers = ( { Host => 'server02', GroupName => 'serversA' }, { Host => 'server04', GroupName => 'serversA' }, { Host => 'server02', GroupName => 'serversB' }, { Host => 'server04', GroupName => 'serversB' }, { Host => 'server02', GroupName => 'serversC' }, { Host => 'server04', GroupName => 'serversC' }, { Host => 'server02', GroupName => 'serversD' }, ); my %hosts; for my $serv (@servers) { $hosts{ $serv->{Host} }{ $serv->{GroupName} }++; } for my $host (sort keys %hosts) { print "$host is in Groups ", join(',', sort keys %{$hosts{$host}}), "\n"; }