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 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 lkundrak\100v3.sk lubo.rintel\100gooddata.com
553 lstein\100cshl.org lstein\100formaggio.cshl.org
554 + lstein\100genome.wi.mit.edu
555 lupe\100lupe-christoph.de lupe\100alanya.m.isar.de
556 lutherh\100stratcom.com lutherh\100infinet.com
557 mab\100wdl.loral.com markb\100rdcf.sm.unisys.com
558 marcel\100codewerk.com gr\100univie.ac.at
559 mark.p.lutz\100boeing.com tecmpl1\100triton.ca.boeing.com
560 marnix\100gmail.com pttesac!marnix!vanam
561 mats\100sm6sxl.net mats\100sm5sxl.net
562 mbarbon\100dsi.unive.it mattia.barbon\100libero.it
563 mcmahon\100ibiblio.org mcmahon\100metalab.unc.edu
564 me\100davidglasser.net glasser\100tang-eleven-seventy-nine.mit.edu
565 merijnb\100iloquent.nl merijnb\100ms.com
566 + merijnb\100iloquent.com
567 merlyn\100stonehenge.com merlyn\100gadget.cscaper.com
568 mgjv\100comdyn.com.au mgjv\100tradingpost.com.au
569 mlh\100swl.msd.ray.com webtools\100uewrhp03.msd.ray.com
570 michael.schroeder\100informatik.uni-erlangen.de mls\100suse.de
571 mike\100stok.co.uk mike\100exegenix.com
572 mjtg\100cam.ac.uk mjtg\100cus.cam.ac.uk
573 mikedlr\100tardis.ed.ac.uk mikedlr\100it.com.pl
574 moritz\100casella.verplant.org moritz\100faui2k3.org
577 neale\100VMA.TABNSW.COM.AU neale\100pucc.princeton.edu
578 neeracher\100mac.com neeri\100iis.ee.ethz.ch
579 neil\100bowers.com neilb\100cre.canon.co.uk
581 nospam-abuse\100bloodgate.com tels\100bloodgate.com
582 + perl_dummy\100bloodgate.com
584 ian.phillipps\100iname.com ian_phillipps\100yahoo.co.uk
585 + ian\100dial.pipex.com
586 ignasi.roca\100fujitsu-siemens.com ignasi.roca\100fujitsu.siemens.es
587 ikegami\100adaelis.com eric\100fmdev10.(none)
588 ilmari\100ilmari.org ilmari\100vesla.ilmari.org
589 illpide\100telecel.pt arbor\100al37al08.telecel.pt
590 # see http://www.nntp.perl.org/group/perl.perl5.porters/2001/01/msg28925.html
592 ilya\100math.berkeley.edu ilya\100math.ohio-state.edu
593 + nospam-abuse\100ilyaz.org
594 + [9]ilya\100math.ohio-state.edu
595 ilya\100martynov.org ilya\100juil.nonet
597 okamoto\100corp.hp.com okamoto\100hpcc123.corp.hp.com
598 orwant\100oreilly.com orwant\100media.mit.edu
600 p5-authors\100crystalflame.net perl\100crystalflame.net
601 + rs\100crystalflame.net
602 + coral\100eekeek.org
603 + coral\100moonlight.crystalflame.net
604 + rs\100oregonnet.com
605 paul.green\100stratus.com paul_greenvos\100vos.stratus.com
606 + pgreen\100seussnt.stratus.com
607 paul.marquess\100btinternet.com paul_marquess\100yahoo.co.uk
608 + paul.marquess\100ntlworld.com
609 + paul.marquess\100openwave.com
610 + pmarquess\100bfsec.bt.co.uk
612 + paul\100paul-desktop.(none)
613 Pavel.Zakouril\100mff.cuni.cz root\100egg.karlov.mff.cuni.cz
614 pcg\100goof.com schmorp\100schmorp.de
615 perl\100cadop.com cdp\100hpescdp.fc.hp.com
616 perl\100greerga.m-l.org greerga\100m-l.org
617 perl\100profvince.com vince\100profvince.com
618 perl-rt\100wizbit.be p5p\100perl.wizbit.be
619 # Maybe we should special case this to get real names out?
620 Peter.Dintelmann\100Dresdner-Bank.com peter.dintelmann\100dresdner-bank.com
621 # NOTE: There is an intentional trailing space in the line above
622 pfeifer\100wait.de pfeifer\100charly.informatik.uni-dortmund.de
624 rabbit\100rabbit.us rabbit+bugs\100rabbit.us
625 phil\100perkpartners.com phil\100finchcomputer.com
626 pimlott\100idiomtech.com andrew\100pimlott.net
627 + pimlott\100abel.math.harvard.edu
628 pixel\100mandriva.com pixel\100mandrakesoft.com
629 pne\100cpan.org philip.newton\100gmx.net
630 + philip.newton\100datenrevision.de
632 pprymmer\100factset.com pvhp\100forte.com
633 public\100khwilliamson.com khw\100karl.(none)
634 + khw\100khw-desktop.(none)
636 radu\100netsoft.ro rgreab\100fx.ro
637 raphael.manfredi\100pobox.com raphael_manfredi\100grenoble.hp.com
638 renee.baecker\100smart-websolutions.de reneeb\100reneeb-desktop.(none)
639 richard.foley\100rfi.net richard.foley\100t-online.de
640 + richard.foley\100ubs.com
641 + richard.foley\100ubsw.com
642 rick\100consumercontact.com rick\100bort.ca
643 + rick.delaney\100rogers.com
645 + rick.delaney\100home.com
646 rjbs\100cpan.org rjbs-perl-p5p\100lists.manxome.org
647 + perl.p5p\100rjbs.manxome.org
648 rjk\100linguist.dartmouth.edu rjk\100linguist.thayer.dartmouth.edu
649 + rjk-perl-p5p\100tamias.net
650 rjray\100redhat.com rjray\100uswest.com
651 rmgiroux\100acm.org rmgiroux\100hotmail.com
652 + mgiroux\100bear.com
653 rmbarker\100cpan.org rmb1\100cise.npl.co.uk
654 + robin.barker\100npl.co.uk
655 + rmb\100cise.npl.co.uk
656 + robin\100spade-ubuntu.(none)
657 robertmay\100cpan.org rob\100themayfamily.me.uk
658 roberto\100keltia.freenix.fr roberto\100eurocontrol.fr
659 robin\100cpan.org robin\100kitsite.com
660 roderick\100argon.org roderick\100gate.net
661 + roderick\100ibcinc.com
662 rootbeer\100teleport.com rootbeer\100redcat.com
663 + tomphoenix\100unknown
664 rurban\100x-ray.at rurban\100cpan.org
666 schubiger\100cpan.org steven\100accognoscere.org
667 + sts\100accognoscere.org
668 + schubiger\100gmail.com
669 schwern\100pobox.com schwern\100gmail.com
670 + schwern\100athens.arena-i.com
671 + schwern\100blackrider.aocn.com
672 + schwern\100ool-18b93024.dyn.optonline.net
673 scotth\100sgi.com author scotth\100sgi.com 842220273 +0000
675 schwab\100suse.de schwab\100issan.informatik.uni-dortmund.de
676 + schwab\100ls5.informatik.uni-dortmund.de
677 sebastien\100aperghis.net maddingue\100free.fr
679 shlomif\100vipe.technion.ac.il shlomif\100iglu.org.il
680 simon\100simon-cozens.org simon\100pembro4.pmb.ox.ac.uk
681 + simon\100brecon.co.uk
682 + simon\100othersideofthe.earth.li
683 + simon\100cozens.net
684 + simon\100netthink.co.uk
685 slaven\100rezic.de slaven.rezic\100berlin.de
686 + srezic\100iconmobile.com
688 + eserte\100cs.tu-berlin.de
689 + eserte\100vran.herceg.de
690 smcc\100mit.edu smcc\100ocf.berkeley.edu
691 + smcc\100csua.berkeley.edu
693 + smccam\100uclink4.berkeley.edu
694 spider\100orb.nashua.nh.us spider\100web.zk3.dec.com
695 + spider\100leggy.zk3.dec.com
696 + spider-perl\100orb.nashua.nh.us
697 + spider\100peano.zk3.dec.com
698 + spider.boardman\100orb.nashua.nh.us>
700 + spider.boardman\100orb.nashua.nh.us
701 + root\100peano.zk3.dec.com
702 spp\100ds.net spp\100psa.pencom.com
703 + spp\100psasolar.colltech.com
704 + spp\100spotter.yi.org
705 stef\100mongueurs.net stef\100payrard.net
706 + s.payrard\100wanadoo.fr
707 + properler\100freesurf.fr
708 + stef\100francenet.fr
709 sthoenna\100efn.org ysth\100raven.shiftboard.com
711 tassilo.parseval\100post.rwth-aachen.de tassilo.von.parseval\100rwth-aachen.de
712 tchrist\100perl.com tchrist\100mox.perl.com
713 + tchrist\100jhereg.perl.com
714 thomas.dorner\100start.de tdorner\100amadeus.net
715 tjenness\100cpan.org t.jenness\100jach.hawaii.edu
716 + timj\100jach.hawaii.edu
717 tobez\100tobez.org tobez\100plab.ku.dk
718 tom\100compton.nu thh\100cyberscience.com
719 tom.horsley\100mail.ccur.com tom.horsley\100ccur.com
720 + tom\100amber.ssd.hcsc.com
722 vkonovalov\100lucent.com vkonovalov\100peterstar.ru
723 + konovalo\100mail.wplus.net
724 + vadim\100vkonovalov.ru
725 + vkonovalov\100spb.lucent.com
726 + vkonovalov\100alcatel-lucent.com
728 whatever\100davidnicol.com davidnicol\100gmail.com
729 wolfgang.laun\100alcatel.at wolfgang.laun\100chello.at
730 + wolfgang.laun\100thalesgroup.com
731 + wolfgang.laun\100gmail.com
732 yath\100yath.de yath-perlbug\100yath.de