use strict; use warnings; my %server_hash = ( 'server1' => ['cluster1',0], 'server2' => ['cluster1',0], 'server3' => ['cluster2',0], 'server4' => ['cluster2',0] ); my %cluster_totals = (); foreach my $this_server(keys %server_hash) { $server_hash{$this_server}->[1] = getCPUUtilization($this_server); $cluster_totals{$server_hash{$this_server}->[0]} += $server_hash{$this_server}->[1]; } foreach (keys %cluster_totals) { print "Cluster: $_ \t $cluster_totals{$_}\n"; }