Diff for /processmail/subroutines.pl between versions 3.2 and 3.0

version 3.2, 2013/10/11 15:39:35 version 3.0, 2008/03/23 17:50:50
Line 176  sub dumphash Line 176  sub dumphash
     }      }
     return 1;      return 1;
 }  }
   
 #  #
 # Сбрасываем ответы на вопрос $number с оценкой $symbol  # Сбрасываем ответы на вопрос $number с оценкой $symbol
 # в формате, пригодном для собрания сочинений  # в формате, пригодном для собрания сочинений
Line 240  sub rate_questions Line 239  sub rate_questions
 #  #
 # Подсчитываем рейтинги команд  # Подсчитываем рейтинги команд
 # @{$nopoint_questions} - список номеров вопросов, идущих вне зачёта.  # @{$nopoint_questions} - список номеров вопросов, идущих вне зачёта.
 # Для них проставляются плюсы/минусы, но они не учитываются в подсчёте  # Для них проставляются плясы/минусы, но они не учитываются в подсчёте
 # очков и рейтингов команд.  # очков и рейтингов команд.
 #  #
 sub find_scores  sub find_scores
Line 277  sub find_scores Line 276  sub find_scores
 }  }
   
   
 #  1;
 # Проверяем на наличие дублирующихся номеров у разных команд.  
 #  
 sub check_dup_numbers  
 {  
     my ($teams) = @_;  
   
   
   
   
     my %seen;  
   
     # Имена команд, номера которых встречаются >1 раза.  
     # Массив uniq_compr_names содержит по одному имени на каждый повторяющийся  
     # номер (чуть позже мы найдём все имена, соответствующие каждому из         
     # этих номеров).                                                            
     # '+0' - чтобы номера обрабатывались как числа (072 == 72).  
     my @uniq_compr_names =  
        grep( ++$seen{$teams->{$_}->{regnum}+0} > 1, keys %$teams );  
   
     # А теперь извлекаем номера из полученного списка.  
     my @dup_numbers = map {$teams->{$_}->{regnum}} @uniq_compr_names;  
     @dup_numbers = sort @dup_numbers;  
   
     # И печатаем предупреждение.  
     if ( @dup_numbers ) {  
         print STDERR "\nВНИМАНИЕ!  Одинаковые номера у нескольких команд:\n";  
         foreach my $num ( @dup_numbers ) {  
             my @dup_names = grep($teams->{$_}->{regnum}+0 == $num+0, keys %$teams);  
             print STDERR "\tНомер $num: " .  join(", ", @dup_names) . "\n";  
         }  
         print STDERR "\n";  
     }  
 }  
   
   
 #  
 # Считаем ответы на вопрос $number с оценкой $symbol  
 # (фактически, это anondump(), только без печати списка  
 # таких ответов).  
 #  
 sub countanswers  
 {  
     my ($teams,$answers,$number,$symbol) = @_;  
     my $num=0;  
     foreach $answer (keys %{$answers->[$number]})  
     {  
         if ($$answers[$number]->{$answer}{score} eq $symbol)  
         {  
             $num++;  
         }  
     }  
     return $num;  
 }  
   
   
 1;  

Removed from v.3.2  
changed lines
  Added in v.3.0


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