#!/usr/bin/pike // countfrom - count number of messages from each sender void main(int argc, array argv) { object file; mapping from = ([]); if(sizeof(argv)>1) file = Stdio.File(argv[1], "r"); else file = Stdio.stdin; foreach(file; int count; string line) { array email = array_sscanf(line, "From: %s"); if(sizeof(email)) from[email[0]]++; } write("end\n"); foreach(sort(indices(from));; string person) { write("%s: %d\n", person, from[person]); } }