while (<$fh_log>) {
my ($month, $user) = /^LOGGING: \S+?-(\S+) \S+: STARTING FLUSH: (\S+)$/
or next;
$flushes{$month}{$user}++;
$flushes{$month}{TOTAL}++;
}
####
my %flushes = (
'Aug-2008' => {
'ces' => 5,
'cjc' => 7,
'TOTAL' => 12,
},
'Jul-2008' => {
'mhs' => 1,
'ces' => 3,
'cjc' => 4,
'TOTAL' => 8,
},
);
####
for my $month ( keys %flushes ) {
print $month . "\n";
print 'Total: ' . $flushes{$month}{TOTAL} . "\n#####\n";
for my $user ( sort keys %{ $flushes{$month} } ) {
next if $user eq 'TOTAL';
printf "%-20s%3d\n", $user, $flushes{$month}{$user};
}
print "\n";
}
####
for my $month ( keys %flushes ) {
print $month . "\n";
print 'Total: ' . $flushes{$month}{TOTAL} . "\n#####\n";
for my $user (
sort { $flushes{$month}{$b} <=> $flushes{$month}{$a} } keys %{ $flushes{$month} }
) {
next if $user eq 'TOTAL';
printf "%-20s%3d\n", $user, $flushes{$month}{$user};
}
print "\n";
}