Annotation of processmail/jointables.pl, revision 2.1

2.1     ! boris       1: #!/usr/bin/perl
        !             2: #
        !             3: # Join tables
        !             4: #
        !             5: use strict;
        !             6: my $USAGE="USAGE: $0 prelim.table final.table\n";
        !             7: if (scalar(@ARGV) != 2) {
        !             8:     die $USAGE;
        !             9: }
        !            10: 
        !            11: my %teams;
        !            12: open (PRELIM, $ARGV[0]);
        !            13: while (<PRELIM>) {
        !            14:     if ($. == 1) {
        !            15:        next;
        !            16:     }
        !            17:     if (/^Рейтинг/) {
        !            18:        last;
        !            19:     }
        !            20:     chomp;
        !            21:     my ($num, $score, $total, $rating, @team) = split;
        !            22:     my $team = join(" ",@team);
        !            23:     $teams{$team}->{score}=$score;
        !            24: }
        !            25: close PRELIM;
        !            26: open (FINAL, $ARGV[1]);
        !            27: while (<FINAL>) {
        !            28:     if ($. == 1) {
        !            29:        next;
        !            30:     }
        !            31:     if (/^Рейтинг/) {
        !            32:        print;
        !            33:        last;
        !            34:     }
        !            35:     chomp;
        !            36:     my ($num, $score, $total, $rating, @team) = split;
        !            37:     
        !            38: }
        !            39: 
        !            40: foreach $team (sort 
        !            41:                {
        !            42:                    $teams{$b}->{score} <=> $teams{$a}->{score}
        !            43:                    or
        !            44:                        $teams{$b}->{rating} <=> $teams{$a}->{rating}
        !            45:                } keys %teams
        !            46:               )
        !            47: {
        !            48:     printf "%5d ",$teams{$team}->{regnum};
        !            49:     for ($i=1;$i<=$MAXQUEST;$i++)
        !            50:     {
        !            51:        my $answer = $teams{$team}->{answers}[$i];
        !            52:        my $score = $answers[$i]->{$answer}->{score};
        !            53:        $score = '-' unless $score;
        !            54:        if ($SHORT) {
        !            55:            printf "%1s",$score;
        !            56:        } else {
        !            57:            printf "%3s", $score;
        !            58:        }
        !            59:     }
        !            60:     printf "%3s",$teams{$team}->{score};
        !            61:     printf "%4s",$teams{$team}->{rating};
        !            62:     print " $team";
        !            63:     print "\n";
        !            64: }
        !            65: 
        !            66: while (<FINAL>) {
        !            67:     print;
        !            68: }

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>