use strict; use warnings; get_avr ('cluster1'); sub get_avr { my $cluster = shift; my %stats; while () { my ($date, $hour, $minutes, $load) = /(\S+)\s+(\d+)(\S+)\s+(\S+)/; $stats{$hour}->[0] += $load; $stats{$hour}->[1]++; } for (sort keys %stats) { print "$cluster $_:00 " . $stats{$_}[0] / $stats{$_}[1] . "\n"; } } __DATA__ 05/08/06 00:00 51.84 1915510 1061 66.13 05/08/06 01:00 25.67 1255510 648 66.07 05/08/06 00:00 35.56 2077540 739 66.26 05/08/06 01:00 33.91 2262510 718 66.37 #### cluster1 00:00 43.7 cluster1 01:00 29.79