4 $Text::Wrap::columns = 80;
5 my ($committer, $patch, $author, $date);
8 my ($rank, $percentage, $cumulative, $reverse, $ta, @authors, %authors,
9 %untraced, %patchers, %committers, %real_names);
10 my $result = GetOptions ("rank" => \$rank, # rank authors
11 "thanks-applied" => \$ta, # ranks committers
12 "acknowledged=s" => \@authors , # authors files
13 "percentage" => \$percentage, # show as %age
14 "cumulative" => \$cumulative,
15 "reverse" => \$reverse,
18 if (!$result or (($rank||0) + ($ta||0) + (@authors ? 1 : 0) != 1) or !@ARGV) {
20 $0 --rank changes # rank authors by patches
21 $0 --acknowledged <authors file> changes # Display unacknowledged authors
22 $0 --thanks-applied changes # ranks committers of others' patches
23 $0 --percentage ... # show rankings as percentages
24 $0 --cumulative ... # show rankings cumulatively
25 $0 --reverse ... # show rankings in reverse
26 Specify stdin as - if needs be. Remember that option names can be abbreviated.
27 Generate changes with git log --pretty=fuller --name-status rev1..rev2
39 if (my ($correct, $alias) = /^\s*([^#\s]\S*)\s+(.*\S)/) {
40 $correct =~ s/^\\043/#/;
41 if ($correct eq '+') {$correct = $prev} else {$prev = $correct}
42 $map {$alias} = $correct;
47 # Email addresses for we do not have names.
50 "bah\100longitude.com",
51 "bbucklan\100jpl-devvax.jpl.nasa.gov",
53 "bob\100starlabs.net",
54 "cygwin\100cygwin.com",
55 "david\100dhaller.de",
56 "erik\100cs.uni-jena.de",
57 "info\100lingo.kiev.ua", # Lingo Translation agency
58 "jms\100mathras.comcast.net",
59 "premchai21\100yahoo.com",
61 "raf\100tradingpost.com.au",
62 "smoketst\100hp46t243.cup.hp.com",
63 "root\100chronos.fi.muni.cz", # no clue - jrv 20090803
64 "gomar\100md.media-web.de", # no clue - jrv 20090803
65 "data-drift\100so.uio.no", # no data. originally private message from 199701282014.VAA12645@selters.uio.no
66 "arbor\100al37al08.telecel.pt", # reported perlbug ticket 5196 - no actual code contribution. no real name - jrv 20091006
67 "oracle\100pcr8.pcr.com", # Reported perlbug ticket 1015 - no patch - Probably Ed Eddington ed@pcr.com
71 # Email addresses for people that don't have an email address in AUTHORS
72 # Presumably deliberately?
76 # Nick Ing-Simmons has passed away (2006-09-25).
77 "nick\100ing-simmons.net",
79 "nick.ing-simmons\100elixent.com",
80 "nick\100ni-s.u-net.com",
81 "nick.ing-simmons\100tiuk.ti.com",
83 # Iain Truskett has passed away (2003-12-29).
84 "perl\100dellah.anu.edu.au",
85 "spoon\100dellah.org",
89 "me-02\100ton.iguana.be",
90 "perl-5.8.0\100ton.iguana.be",
91 "perl5-porters\100ton.iguana.be",
94 "beau\100beaucox.com",
97 "ml-perl\100thepierianspring.org",
99 # perl internal addresses
100 "perl5-porters\100africa.nicoh.com",
101 "perlbug\100perl.org",,
102 "perl5-porters.nicoh.com",
103 "perlbug-followup\100perl.org",
104 "perlbug-comment\100perl.org",
105 "bug-module-corelist\100rt.cpan.org",
106 "bug-storable\100rt.cpan.org",
107 "bugs-perl5\100bugs6.perl.org",
109 "unknown\100unknown",
110 "unknown\100longtimeago",
111 "unknown\100perl.org",
119 foreach my $filename (@authors) {
120 open FH, "<$filename" or die "Can't open $filename: $!";
127 } elsif (/^([-A-Za-z0-9 .\'À-ÖØöø-ÿ]+)[\t\n]/) {
130 } elsif (length $_) {
132 warn "Can't parse line '$_'";
138 foreach (keys %raw) {
139 print "E-mail $_ occurs $raw{$_} times\n" if $raw{$_} > 1;
141 $authors{$map{$_} || $_}++;
147 my @lines = split(/^commit\s*/sm,join('',<>));
150 next if m/^(\S*?)^Merge:/ism; # skip merge commits
151 if (m/^(.*?)^Author:\s*(.*?)^AuthorDate:\s*(.*?)^Commit:\s*(.*?)^(.*)$/gism) {
153 ($patch, $author, $date, $committer) = ($1,$2,$3,$4);
155 unless ($author) { die $_}
157 unless ($committer) { die $_}
158 &process($committer, $patch, $author);
159 } else { die "XXX $_ did not match";}
164 &display_ordered(\%patchers);
166 &display_ordered(\%committers);
169 foreach (sort keys %patchers) {
170 next if $authors{$_};
171 # Sort by number of patches, then name.
172 $missing{$patchers{$_}}->{$_}++;
174 foreach my $patches (sort {$b <=> $a} keys %missing) {
175 print "\n\n=head1 $patches patch(es)\n\n";
176 foreach my $author (sort keys %{$missing{$patches}}) {
177 my $xauthor = $author;
178 $xauthor =~ s/@/\\100/g; # xxx temp hack
179 print "".($real_names{$author}||$author) ."\t\t\t<" . $xauthor.">\n" ;
184 sub display_ordered {
188 while (my ($name, $count) = each %$what) {
189 push @{$sorted[$count]}, $name;
194 return unless @sorted;
196 foreach my $i ($reverse ? 0 .. $#sorted : reverse 0 .. $#sorted) {
197 next unless $sorted[$i];
199 $sum += $i * @{$sorted[$i]};
200 # Value to display is either this one, or the cumulative sum.
201 my $value = $cumulative ? $sum : $i;
203 $prefix = sprintf "%6.2f:\t", 100 * $value / $total;
205 $prefix = "$value:\t";
207 print wrap ($prefix, "\t", join (" ", sort @{$sorted[$i]}), "\n");
212 my ($committer, $patch, $author) = @_;
213 return unless $author;
214 return unless $committer;
216 $author = _raw_address($author);
217 $patchers{$author}++;
219 $committer = _raw_address($committer);
220 if ($committer ne $author) {
221 # separate commit credit only if committing someone else's patch
222 $committers{$committer}++;
229 if ($addr =~ /<.*>/) {
230 $addr =~ s/^\s*(.*)\s*<\s*(.*?)\s*>.*$/$2/ ;
233 $addr =~ s/\[mailto://;
236 $addr = $map{$addr} || $addr;
237 $addr =~ s/\\100/@/g; # Sometimes, there are encoded @ signs in the git log.
239 if ($real_name) { $real_names{$addr} = $real_name};
247 # List of mappings. First entry the "correct" email address, as appears
248 # in the AUTHORS file. Second is any "alias" mapped to it.
250 # If the "correct" email address is a '+', the entry above is reused;
251 # this for addresses with more than one alias.
253 # Note that all entries are in lowercase. Further, no '@' signs should
254 # appear; use \100 instead.
259 adi enache\100rdslink.ro
260 alanbur alan.burlison\100sun.com
261 + alan.burlison\100uk.sun.com
262 + aburlison\100cix.compulink.co.uk
263 ams ams\100toroid.org
265 chip chip\100pobox.com
267 + salzench\100nielsenmedia.com
268 + chip\100atlantic.net
269 + chip\100rio.atlantic.net
270 + salzench\100dun.nielsen.com
271 + chip\100ci005.sv2.upperbeyond.com
272 craigb craig.berry\100psinetcs.com
273 + craig.berry\100metamorgs.com
274 + craig.berry\100signaltreesolutions.com
275 + craigberry\100mac.com
276 + craig.a.berry\100gmail.com
278 davem davem\100fdgroup.com
279 + davem\100iabyn.nospamdeletethisbit.com
281 + davem\100fdgroup.co.uk
282 + davem\100fdisolutions.com
284 demerphq demerphq\100gmail.com
285 + yves.orton\100de.mci.com
286 + yves.orton\100mciworldcom.de
287 + demerphq\100dromedary.booking.com
288 + demerphq\100gemini.(none)
289 + demerphq\100camel.booking.com
290 + demerphq\100hotmail.com
291 doughera doughera\100lafayette.edu
292 + doughera\100lafcol.lafayette.edu
293 + doughera\100fractal.phys.lafayette.edu
294 + doughera.lafayette.edu
295 + doughera\100newton.phys.lafayette.edu
297 gbarr gbarr\100pobox.com
298 + bodg\100tiuk.ti.com
300 + graham.barr\100tiuk.ti.com
301 + gbarr\100monty.mutatus.co.uk
302 gisle gisle\100activestate.com
305 + aas\100bergen.sn.no
306 gsar gsar\100activestate.com
308 + gsar\100engin.umich.edu
309 hv hv\100crypt.compulink.co.uk
313 + jhietaniemi\100gmail.com
315 + jhi\100alpha.hut.fi
318 + jarkko.hietaniemi\100nokia.com
319 + jarkko.hietaniemi\100cc.hut.fi
320 jesse jesse\100bestpractical.com
323 merijn h.m.brand\100xs4all.nl
324 + h.m.brand\100hccnet.nl
325 + merijn\100l1.procura.nl
326 + merijn\100a5.(none)
327 mhx mhx-perl\100gmx.net
329 nicholas nick\100unfortu.net
331 + nick\100talking.bollo.cx
332 + nick\100plum.flirble.org
333 + nick\100babyhippo.co.uk
334 + nick\100bagpuss.unfortu.net
335 + nick\100babyhippo.com
336 + Nicholas Clark (sans From field in mail header)
337 pudge pudge\100pobox.com
338 rgs rgarciasuarez\100free.fr
339 + rgarciasuarez\100mandrakesoft.com
340 + rgarciasuarez\100mandriva.com
341 + rgarciasuarez\100gmail.com
342 + raphel.garcia-suarez\100hexaflux.com
344 sky sky\100nanisky.com
345 + artur\100contiller.se
346 + arthur\100contiller.se
347 steveh steve.m.hay\100googlemail.com
348 + stevehay\100planit.com
349 + steve.hay\100uk.radan.com
350 stevep steve\100fisharerojo.org
351 + steve.peters\100gmail.com
352 + root\100dixie.cscaper.com
353 timb Tim.Bunce\100pobox.com
354 + tim.bunce\100ig.co.uk
360 \043####\100juerd.nl juerd\100cpan.org
361 + juerd\100convolution.nl
362 7k8lrvf02\100sneakemail.com kjx9zthh3001\100sneakemail.com
363 + dtr8sin02\100sneakemail.com
364 + rt8363b02\100sneakemail.com
365 + o6hhmk002\100sneakemail.com
366 + smueller\100cpan.org
367 + l2ot9pa02\100sneakemail.com
368 + wyp3rlx02\100sneakemail.com
369 + 0mgwtfbbq\100sneakemail.com
370 + xyey9001\100sneakemail.com
371 a.r.ferreira\100gmail.com aferreira\100shopzilla.com
372 abe\100ztreet.demon.nl abeltje\100cpan.org
373 abela\100hsc.fr abela\100geneanet.org
374 abigail\100abigail.be abigail\100foad.org
375 + abigail\100abigail.nl
377 aburt\100isis.cs.du.edu isis!aburt
378 ach\100mpe.mpg.de ach\100rosat.mpe-garching.mpg.de
379 adavies\100ptc.com alex.davies\100talktalk.net
380 ajohnson\100nvidia.com ajohnson\100wischip.com
381 + anders\100broadcom.com
382 alexm\100netli.com alexm\100w-m.ru
383 alex-p5p\100earth.li alex\100rcon.rog
384 alexmv\100mit.edu alex\100chmrr.net
385 alian\100cpan.org alian\100alianwebserver.com
386 allen\100grumman.com allen\100gateway.grumman.com
387 allen\100huarp.harvard.edu nort\100bottesini.harvard.edu
389 allens\100cpan.org easmith\100beatrice.rutgers.edu
390 + root\100dogberry.rutgers.edu
391 andreas.koenig\100anima.de andreas.koenig.gmwojprw\100franz.ak.mind.de
392 + andreas.koenig.7os6vvqr\100franz.ak.mind.de
393 + a.koenig\100mind.de
394 + k\100anna.in-berlin.de
396 + koenig\100anna.mind.de
398 + root\100ak-71.mind.de
399 + root\100ak-75.mind.de
400 + k\100sissy.in-berlin.de
401 + a.koenig\100kulturbox.de
402 + k\100sissy.in-berlin.de
403 + root\100dubravka.in-berlin.de
404 anno4000\100lublin.zrz.tu-berlin.de anno4000\100mailbox.tu-berlin.de
405 + siegel\100zrz.tu-berlin.de
406 arnold\100gnu.ai.mit.edu arnold\100emoryu2.arpa
407 + gatech!skeeve!arnold
408 arussell\100cs.uml.edu adam\100adam-pc.(none)
409 ash\100cpan.org ash_cpan\100firemirror.com
410 avarab\100gmail.com avar\100cpan.org
412 bailey\100newman.upenn.edu bailey\100hmivax.humgen.upenn.edu
413 + bailey\100genetics.upenn.edu
414 + bailey.charles\100gmail.com
415 bah\100ecnvantage.com bholzman\100longitude.com
416 barries\100slaysys.com root\100jester.slaysys.com
417 bkedryna\100home.com bart\100cg681574-a.adubn1.nj.home.com
418 bcarter\100gumdrop.flyinganvil.org q.eibcartereio.=~m-b.{6}-cgimosx\100gumdrop.flyinganvil.org
419 ben_tilly\100operamail.com btilly\100gmail.com
420 + ben_tilly\100hotmail.com
421 ben\100morrow.me.uk mauzo\100csv.warwick.ac.uk
423 bepi\100perl.it enrico.sorcinelli\100gmail.com
424 bert\100alum.mit.edu bert\100genscan.com
425 brian.d.foy\100gmail.com bdfoy\100cpan.org
426 BQW10602\100nifty.com sadahiro\100cpan.org
428 chromatic\100wgz.org chromatic\100rmci.net
429 clintp\100geeksalad.org cpierce1\100ford.com
430 clkao\100clkao.org clkao\100bestpractical.com
431 corion\100corion.net corion\100cpan.org
432 cp\100onsitetech.com publiustemp-p5p\100yahoo.com
433 + publiustemp-p5p3\100yahoo.com
434 cpan\100audreyt.org autrijus\100egb.elixus.org
435 + autrijus\100geb.elixus.org
436 + autrijus\100gmail.com
437 + autrijus\100ossf.iis.sinica.edu.tw
438 + autrijus\100autrijus.org
439 + audreyt\100audreyt.org
440 cpan\100ton.iguana.be me-01\100ton.iguana.be
441 crt\100kiski.net perl\100ctweten.amsite.com
443 dairiki\100dairiki.org dairiki at dairiki.org
444 dagolden\100cpan.org xdaveg\100gmail.com
445 damian\100conway.org damian\100cs.monash.edu.au
446 dan\100sidhe.org sugalsd\100lbcc.cc.or.us
447 + sugalskd\100osshe.edu
448 daniel\100bitpusher.com daniel\100biz.bitpusher.com
449 david.dyck\100fluke.com dcd\100tc.fluke.com
450 david\100kineticode.com david\100wheeler.com
451 + david\100wheeler.net
452 dennis\100booking.com dennis\100camel.ams6.corp.booking.com
453 dev-perl\100pimb.org knew-p5p\100pimb.org
454 + lists-p5p\100pimb.org
455 djberg86\100attbi.com djberg96\100attbi.com
456 domo\100computer.org shouldbedomo\100mac.com
457 + domo\100slipper.ip.lu
459 dougm\100covalent.net dougm\100opengroup.org
461 dougw\100cpan.org doug_wilson\100intuit.com
462 dwegscheid\100qtm.net wegscd\100whirlpool.com
463 edwardp\100excitehome.net epeschko\100den-mdev1
464 + epeschko\100elmer.tci.com
466 egf7\100columbia.edu efifer\100sanwaint.com
467 eggert\100twinsun.com eggert\100sea.sm.unisys.com
469 fugazi\100zyx.net larrysh\100cpan.org
470 + lshatzer\100islanddata.com
472 gbacon\100itsc.uah.edu gbacon\100adtrn-srv4.adtran.com
473 gerberb\100zenez.com root\100devsys0.zenez.com
474 gfuji\100cpan.org g.psy.va\100gmail.com
475 gerard\100ggoossen.net gerard\100tty.nl
476 gibreel\100pobox.com stephen.zander\100interlock.mckesson.com
478 gnat\100frii.com gnat\100prometheus.frii.com
479 gp\100familiehaase.de gerrit\100familiehaase.de
480 grazz\100pobox.com grazz\100nyc.rr.com
481 gward\100ase.com greg\100bic.mni.mcgill.ca
482 hansmu\100xs4all.nl hansm\100icgroup.nl
486 + hansm\100euronet.nl
488 hio\100ymir.co.jp hio\100hio.jp
489 hops\100sco.com hops\100scoot.pdev.sco.com
491 ingo_weinhold\100gmx.de bonefish\100cs.tu-berlin.de
493 james\100mastros.biz theorb\100desert-island.me.uk
494 jand\100activestate.com jan.dubois\100ibm.net
495 japhy\100pobox.com japhy\100pobox.org
496 + japhy\100perlmonk.org
498 + jeffp\100crusoe.net
499 jari.aalto\100poboxes.com jari.aalto\100cante.net
500 jarausch\100numa1.igpm.rwth-aachen.de helmutjarausch\100unknown
501 jasons\100cs.unm.edu jasons\100sandy-home.arc.unm.edu
502 jbuehler\100hekimian.com jhpb\100hekimian.com
503 jcromie\100100divsol.com jcromie\100cpan.org
504 + jim.cromie\100gmail.com
505 jidanni\100jidanni.org jidanni\100hoffa.dreamhost.com
506 jdhedden\100cpan.org jerry\100hedden.us
507 + jdhedden\1001979.usna.com
508 + jdhedden\100gmail.com
509 + jdhedden\100yahoo.com
510 + jhedden\100pn100-02-2-356p.corp.bloomberg.com
511 jeremy\100zawodny.com jzawodn\100wcnet.org
512 jesse\100sig.bsh.com jesse\100ginger
513 jfriedl\100yahoo.com jfriedl\100yahoo-inc.com
514 jfs\100fluent.com jfs\100jfs.fluent.com
515 jhannah\100omnihotels.com jay\100jays.net
516 jjore\100cpan.org twists\100gmail.com
517 jns\100integration-house.com jns\100gellyfish.com
518 + gellyfish\100gellyfish.com
519 john\100atlantech.com john\100titanic.atlantech.com
520 john\100johnwright.org john.wright\100hp.com
521 joseph\100cscaper.com joseph\1005sigma.com
522 joshua\100rodd.us jrodd\100pbs.org
523 jtobey\100john-edwin-tobey.org jtobey\100user1.channel1.com
524 jpeacock\100rowman.com john.peacock\100havurah-software.org
525 + jpeacock\100havurah-software.org
526 + jpeacock\100dsl092-147-156.wdc1.dsl.speakeasy.net
527 + jpeacock\100jpeacock-hp.doesntexist.org
528 jql\100accessone.com jql\100jql.accessone.com
529 jsm28\100hermes.cam.ac.uk jsm28\100cam.ac.uk
531 kane\100dwim.org kane\100xs4all.net
536 ken\100mathforum.org kenahoo\100gmail.com
537 + ken.williams\100thomsonreuters.com
538 kroepke\100dolphin-services.de kay\100dolphin-services.de
539 kstar\100wolfetech.com kstar\100cpan.org
540 + kurt_starsinic\100ml.com
541 + kstar\100www.chapin.edu
542 + kstar\100chapin.edu
543 larry\100wall.org lwall\100jpl-devvax.jpl.nasa.gov
544 + lwall\100netlabs.com
545 + larry\100netlabs.com
547 + lwall\100scalpel.netlabs.com
548 laszlo.molnar\100eth.ericsson.se molnarl\100cdata.tvnet.hu
549 + ml1050\100freemail.hu
550 lewart\100uiuc.edu lewart\100vadds.cvm.uiuc.edu
551 + d-lewart\100uiuc.edu
552 lstein\100cshl.org lstein\100formaggio.cshl.org
553 + lstein\100genome.wi.mit.edu
554 lupe\100lupe-christoph.de lupe\100alanya.m.isar.de
555 lutherh\100stratcom.com lutherh\100infinet.com
556 mab\100wdl.loral.com markb\100rdcf.sm.unisys.com
557 marcel\100codewerk.com gr\100univie.ac.at
558 mark.p.lutz\100boeing.com tecmpl1\100triton.ca.boeing.com
559 marnix\100gmail.com pttesac!marnix!vanam
560 mats\100sm6sxl.net mats\100sm5sxl.net
561 mbarbon\100dsi.unive.it mattia.barbon\100libero.it
562 mcmahon\100ibiblio.org mcmahon\100metalab.unc.edu
563 me\100davidglasser.net glasser\100tang-eleven-seventy-nine.mit.edu
564 merijnb\100iloquent.nl merijnb\100ms.com
565 + merijnb\100iloquent.com
566 merlyn\100stonehenge.com merlyn\100gadget.cscaper.com
567 mgjv\100comdyn.com.au mgjv\100tradingpost.com.au
568 mlh\100swl.msd.ray.com webtools\100uewrhp03.msd.ray.com
569 michael.schroeder\100informatik.uni-erlangen.de mls\100suse.de
570 mike\100stok.co.uk mike\100exegenix.com
571 mjtg\100cam.ac.uk mjtg\100cus.cam.ac.uk
572 mikedlr\100tardis.ed.ac.uk mikedlr\100it.com.pl
573 moritz\100casella.verplant.org moritz\100faui2k3.org
576 neale\100VMA.TABNSW.COM.AU neale\100pucc.princeton.edu
577 neeracher\100mac.com neeri\100iis.ee.ethz.ch
578 neil\100bowers.com neilb\100cre.canon.co.uk
580 nospam-abuse\100bloodgate.com tels\100bloodgate.com
581 + perl_dummy\100bloodgate.com
583 ian.phillipps\100iname.com ian_phillipps\100yahoo.co.uk
584 + ian\100dial.pipex.com
585 ignasi.roca\100fujitsu-siemens.com ignasi.roca\100fujitsu.siemens.es
586 ikegami\100adaelis.com eric\100fmdev10.(none)
587 ilmari\100ilmari.org ilmari\100vesla.ilmari.org
588 illpide\100telecel.pt arbor\100al37al08.telecel.pt
589 # see http://www.nntp.perl.org/group/perl.perl5.porters/2001/01/msg28925.html
591 ilya\100math.berkeley.edu ilya\100math.ohio-state.edu
592 + nospam-abuse\100ilyaz.org
593 + [9]ilya\100math.ohio-state.edu
594 ilya\100martynov.org ilya\100juil.nonet
596 okamoto\100corp.hp.com okamoto\100hpcc123.corp.hp.com
597 orwant\100oreilly.com orwant\100media.mit.edu
599 p5-authors\100crystalflame.net perl\100crystalflame.net
600 + rs\100crystalflame.net
601 + coral\100eekeek.org
602 + coral\100moonlight.crystalflame.net
603 + rs\100oregonnet.com
604 paul.green\100stratus.com paul_greenvos\100vos.stratus.com
605 + pgreen\100seussnt.stratus.com
606 paul.marquess\100btinternet.com paul_marquess\100yahoo.co.uk
607 + paul.marquess\100ntlworld.com
608 + paul.marquess\100openwave.com
609 + pmarquess\100bfsec.bt.co.uk
611 + paul\100paul-desktop.(none)
612 Pavel.Zakouril\100mff.cuni.cz root\100egg.karlov.mff.cuni.cz
613 pcg\100goof.com schmorp\100schmorp.de
614 perl\100cadop.com cdp\100hpescdp.fc.hp.com
615 perl\100greerga.m-l.org greerga\100m-l.org
616 perl\100profvince.com vince\100profvince.com
617 perl-rt\100wizbit.be p5p\100perl.wizbit.be
618 # Maybe we should special case this to get real names out?
619 Peter.Dintelmann\100Dresdner-Bank.com peter.dintelmann\100dresdner-bank.com
620 # NOTE: There is an intentional trailing space in the line above
621 pfeifer\100wait.de pfeifer\100charly.informatik.uni-dortmund.de
623 rabbit\100rabbit.us rabbit+bugs\100rabbit.us
624 phil\100perkpartners.com phil\100finchcomputer.com
625 pimlott\100idiomtech.com andrew\100pimlott.net
626 + pimlott\100abel.math.harvard.edu
627 pixel\100mandriva.com pixel\100mandrakesoft.com
628 pne\100cpan.org philip.newton\100gmx.net
629 + philip.newton\100datenrevision.de
631 pprymmer\100factset.com pvhp\100forte.com
632 public\100khwilliamson.com khw\100karl.(none)
633 + khw\100khw-desktop.(none)
635 radu\100netsoft.ro rgreab\100fx.ro
636 raphael.manfredi\100pobox.com raphael_manfredi\100grenoble.hp.com
637 renee.baecker\100smart-websolutions.de reneeb\100reneeb-desktop.(none)
638 richard.foley\100rfi.net richard.foley\100t-online.de
639 + richard.foley\100ubs.com
640 + richard.foley\100ubsw.com
641 rick\100consumercontact.com rick\100bort.ca
642 + rick.delaney\100rogers.com
644 + rick.delaney\100home.com
645 rjbs\100cpan.org rjbs-perl-p5p\100lists.manxome.org
646 + perl.p5p\100rjbs.manxome.org
647 rjk\100linguist.dartmouth.edu rjk\100linguist.thayer.dartmouth.edu
648 + rjk-perl-p5p\100tamias.net
649 rjray\100redhat.com rjray\100uswest.com
650 rmgiroux\100acm.org rmgiroux\100hotmail.com
651 + mgiroux\100bear.com
652 rmbarker\100cpan.org rmb1\100cise.npl.co.uk
653 + robin.barker\100npl.co.uk
654 + rmb\100cise.npl.co.uk
655 robertmay\100cpan.org rob\100themayfamily.me.uk
656 roberto\100keltia.freenix.fr roberto\100eurocontrol.fr
657 robin\100cpan.org robin\100kitsite.com
658 roderick\100argon.org roderick\100gate.net
659 + roderick\100ibcinc.com
660 rootbeer\100teleport.com rootbeer\100redcat.com
661 + tomphoenix\100unknown
662 rurban\100x-ray.at rurban\100cpan.org
664 schubiger\100cpan.org steven\100accognoscere.org
665 + sts\100accognoscere.org
666 + schubiger\100gmail.com
667 schwern\100pobox.com schwern\100gmail.com
668 + schwern\100athens.arena-i.com
669 + schwern\100blackrider.aocn.com
670 + schwern\100ool-18b93024.dyn.optonline.net
671 scotth\100sgi.com author scotth\100sgi.com 842220273 +0000
673 schwab\100suse.de schwab\100issan.informatik.uni-dortmund.de
674 + schwab\100ls5.informatik.uni-dortmund.de
675 sebastien\100aperghis.net maddingue\100free.fr
677 shlomif\100vipe.technion.ac.il shlomif\100iglu.org.il
678 simon\100simon-cozens.org simon\100pembro4.pmb.ox.ac.uk
679 + simon\100brecon.co.uk
680 + simon\100othersideofthe.earth.li
681 + simon\100cozens.net
682 + simon\100netthink.co.uk
683 slaven\100rezic.de slaven.rezic\100berlin.de
684 + srezic\100iconmobile.com
686 + eserte\100cs.tu-berlin.de
687 + eserte\100vran.herceg.de
688 smcc\100mit.edu smcc\100ocf.berkeley.edu
689 + smcc\100csua.berkeley.edu
691 + smccam\100uclink4.berkeley.edu
692 spider\100orb.nashua.nh.us spider\100web.zk3.dec.com
693 + spider\100leggy.zk3.dec.com
694 + spider-perl\100orb.nashua.nh.us
695 + spider\100peano.zk3.dec.com
696 + spider.boardman\100orb.nashua.nh.us>
698 + spider.boardman\100orb.nashua.nh.us
699 + root\100peano.zk3.dec.com
700 spp\100ds.net spp\100psa.pencom.com
701 + spp\100psasolar.colltech.com
702 + spp\100spotter.yi.org
703 stef\100mongueurs.net stef\100payrard.net
704 + s.payrard\100wanadoo.fr
705 + properler\100freesurf.fr
706 + stef\100francenet.fr
707 sthoenna\100efn.org ysth\100raven.shiftboard.com
709 tassilo.parseval\100post.rwth-aachen.de tassilo.von.parseval\100rwth-aachen.de
710 tchrist\100perl.com tchrist\100mox.perl.com
711 + tchrist\100jhereg.perl.com
712 thomas.dorner\100start.de tdorner\100amadeus.net
713 tjenness\100cpan.org t.jenness\100jach.hawaii.edu
714 + timj\100jach.hawaii.edu
715 tobez\100tobez.org tobez\100plab.ku.dk
716 tom\100compton.nu thh\100cyberscience.com
717 tom.horsley\100mail.ccur.com tom.horsley\100ccur.com
718 + tom\100amber.ssd.hcsc.com
720 vkonovalov\100lucent.com vkonovalov\100peterstar.ru
721 + konovalo\100mail.wplus.net
722 + vadim\100vkonovalov.ru
723 + vkonovalov\100spb.lucent.com
724 + vkonovalov\100alcatel-lucent.com
726 whatever\100davidnicol.com davidnicol\100gmail.com
727 wolfgang.laun\100alcatel.at wolfgang.laun\100chello.at
728 + wolfgang.laun\100thalesgroup.com
729 + wolfgang.laun\100gmail.com
730 yath\100yath.de yath-perlbug\100yath.de