--- processmail/processmail.pl 2005/01/24 03:14:49 2.1 +++ processmail/processmail.pl 2013/10/11 15:39:35 3.2 @@ -1,5 +1,5 @@ -#!/usr/local/bin/perl -#$Id: processmail.pl,v 2.1 2005/01/24 03:14:49 boris Exp $ +#!/usr/bin/perl +#$Id: processmail.pl,v 3.2 2013/10/11 15:39:35 boris Exp $ # # # Исходные файлы и параметры @@ -7,13 +7,13 @@ use Getopt::Std; -$usage = 'processmail.pl $Revision: 2.1 $, $Date: 2005/01/24 03:14:49 $'. "\n". -"Usage: processmail.pl [-d] [-t table_file] [-m mail_file] [-o results] \n"; +$usage = 'processmail.pl $Revision: 3.2 $, $Date: 2013/10/11 15:39:35 $'. "\n". +"Usage: processmail.pl [-d] [-t table_file] [-o results] \n"; require 'parameters.pl'; require 'subroutines.pl'; -die $usage unless getopts('t:m:o:d'); +die $usage unless getopts('t:o:d'); $DEBUG=$opt_d; @@ -31,22 +31,25 @@ if ($opt_t) } # -# Читаем ответы команд +# Читаем ответы команд для ВСЕХ зачётов # -if ($opt_m) -{ - die "Cannot open $opt_m\n" unless open(INFILE,$opt_m) + +$MAXQUEST=1; +for (my $i=1; $i<=$ROUNDS; $i++) { + if ($MAXQUEST<$MAXQUEST[$i]) { + $MAXQUEST=$MAXQUEST[$i]; + } } -else -{ - *INFILE=*STDIN; + +for (my $i=1; $i<=$ROUNDS; $i++) { + foreach my $file ( @{$FILES[$i]} ) { + open (INFILE, $file); + readmail(\%teams); + collect_answers(\%teams,\@answers); + close (INFILE); + } } -readmail(\%teams); -close(INFILE); -# -# Чистим хэш %answers -# -collect_answers(\%teams,\@answers); + # # Пишем измененную таблицу в файл. # @@ -64,4 +67,7 @@ for ($i=1;$i<=$MAXQUEST;$i++) } print "***\n"; - +# +# На всякий случай проверяем на наличие команд с дублирующимися номерами. +# +check_dup_numbers(\%teams);