#!/usr/bin/perl -T use strict; use diagnostics; # -- sub get_cpu { my $servername = shift; my %cpu = ( server1 => 10, server2 => 20, server3 => 5, server4 => 15, ); return $cpu{$servername}; }; # -- my %servers = ( server1 => 'cluster1', server2 => 'cluster1', server3 => 'cluster2', server4 => 'cluster2', ); my %clusters; foreach my $servername (keys %servers) { $clusters{$servers{$servername}} += get_cpu($servername); }; print "$_:\t".($clusters{$_}/2)."\n" foreach sort keys %clusters;