Annotation of processmail/collection.pl, revision 3.2
3.2 ! boris 1: #!/usr/bin/perl
1.1 boris 2: #
3.0 boris 3: #$Id: collection.pl,v 1.4 2005/02/16 22:25:59 boris Exp $
1.1 boris 4: #
5: # Собрание сочинений
6: #
3.2 ! boris 7:
! 8: use Getopt::Std;
1.1 boris 9:
1.4 boris 10: $usage =
3.2 ! boris 11: "Usage: collection.pl [-d] [-s|-m] [-t table_file] [-o results] \n";
1.1 boris 12:
13: require 'parameters.pl';
14: require 'subroutines.pl';
15:
3.2 ! boris 16: die $usage unless getopts('t:o:dsm');
1.1 boris 17:
18: $DEBUG=$opt_d;
3.2 ! boris 19: $SHORT=$opt_s;
! 20: $MEDIUM=$opt_m;
1.1 boris 21:
1.4 boris 22: # Находим максимальный вопрос
23: $MAXQUEST=1;
24: for (my $i=1; $i<=$ROUNDS; $i++) {
25: if ($MAXQUEST<$MAXQUEST[$i]) {
26: $MAXQUEST=$MAXQUEST[$i];
27: }
28: }
29:
1.1 boris 30:
31:
32: my %teams;
33: my @answers;
34: #
35: # Читаем старые результаты
36: #
37: if ($opt_t)
38: {
39: die "Cannot open $opt_t\n" unless open(INFILE,$opt_t);
40: readhash(\@answers);
41: close(INFILE);
42: }
43:
44: #
45: # Читаем ответы команд
46: #
1.4 boris 47: for (my $i=1; $i<=$ROUNDS; $i++) {
3.1 boris 48: foreach my $file ( @{$FILES[$i]} ) {
1.4 boris 49: open (INFILE, $file);
50: readmail(\%teams);
51: collect_answers(\%teams,\@answers);
52: close (INFILE);
53: }
1.1 boris 54: }
1.4 boris 55:
3.1 boris 56: #
1.1 boris 57: # Пишем измененную таблицу в файл.
58: #
59: if ($opt_o)
60: {
61: die "Cannot open $opt_o\n" unless open(OUTFILE,">$opt_o");
62: select OUTFILE;
63: }
64: for ($i=1;$i<=$MAXQUEST;$i++)
65: {
66: print "\nВОПРОС $i:\n";
3.2 ! boris 67: if ( ! $SHORT || countanswers(\%teams,\@answers,$i,'+') ) {
! 68: print "\nЗАСЧИТАНО:\n";
! 69: anondump(\%teams,\@answers,$i,'+');
! 70: }
! 71: if ( ! $SHORT || countanswers(\%teams,\@answers,$i,'+') ) {
! 72: print "\nНЕ ЗАСЧИТАНО:\n";
! 73: anondump(\%teams,\@answers,$i,'-');
! 74: }
! 75: if ( ! ($SHORT || $MEDIUM) || countanswers(\%teams,\@answers,$i,'?') ) {
! 76: print "\nНЕ ЯСНО:\n";
! 77: anondump(\%teams,\@answers,$i,'?');
! 78: }
! 79: print "\n"; # Added by LG for better readability
1.1 boris 80: }
81: print "***\n";
82:
3.1 boris 83: #
84: # На всякий случай проверяем на наличие команд с дублирующимися номерами.
85: #
86: check_dup_numbers(\%teams);
1.1 boris 87:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>