#!/usr/bin/perl my ($line, %reviewers, $use) = (undef, undef, 0); while ($line = <>) { $line =~ m@^Date:@ and $use = $line =~ m@2008@; if ($use and ($line =~ m@has granted@ or $line =~ m@has denied@)) { my ($email) = $line =~ m@<([^>]+)>@; if (not defined($email)) { $email = $line; } if (not defined($reviewers{$email})) { my ($name) = $line =~ m@^([^>]+>)@; $reviewers{$email} = { count => 0, name => $name}; } $reviewers{$email}{"count"} = $reviewers{$email}{"count"} + 1; } } my @sorted = reverse sort { $reviewers{$a}{"count"} <=> $reviewers{$b}{"count"} } keys %reviewers; for my $reviewer (@sorted) { printf "%s\t%d\n", $reviewers{$reviewer}{"name"}, $reviewers{$reviewer}{"count"}; }