use Email::Simple; opendir DIR, $ARGV[0]; my @files = grep { $_ !~ /^\./ } readdir(DIR); closedir DIR; $/=undef; my %occ; my $cnt = 0; foreach my $file (@files){ open FILE, $file; my $content = ; close FILE; my $mail = Email::Simple->new($content); my $spam = $mail->header("X-Spam-Status"); $spam =~ m/tests=(.*)/; my @tests = split /,/, $1; foreach my $test (@tests){ $occ{$test}++; } $cnt++; } foreach my $test (sort { $occ{$a} <=> $occ{$b} } keys %occ){ my $prc = sprintf "%.2f", $occ{$test}*100/$cnt; print "$test: $prc\n"; }