Ну, не делая это более сложным, чем вы просили, вот то, что я придумал в качестве возможного подхода.
#!/usr/bin/perl
use strict;
my %counter = ( "A" => 0, "B" => 0, "AB" => 0, "majority" => 0);
while(<DATA>){
chomp;
next unless $_;
my ($workerId,$query,$sys1,$sys2,$resultSelected) = split(',');
$counter{$resultSelected}++;
}
$counter{'majority'} = (sort {$counter{$b} <=> $counter{$a}} keys %counter)[0];
print "A: $counter{'A'} B: $counter{'B'} both(AB): $counter{'AB'} majority: $counter{'majority'}\n";
__END__
user1,male,A,B,A
user2,male,A,B,AB
user3,male,A,B,B
user4,male,A,B,A
user5,male,A,B,A
Вывод этого: A: 3 B: 1 оба (AB): 1 большинство: A
Мне не кажется, что мой пример для вас полностью посвящен идее существования более одного типа с «большинством».Например, если A и B равны 9, я ожидаю, что они оба будут перечислены там.Я не удосужился сделать это, поскольку ты не просил, но, надеюсь, это поможет тебе выбрать правильный путь.