8 my ($card, $bid) = split /\s+/;
10 say " $card => $bid $_ " . val($card);
15 my @cards = split //, $card;
17 $hist{$_}++ for @cards;
18 return 1 if grep { $hist{$_} == 5 } @cards;
19 return 2 if grep { $hist{$_} == 4 } @cards;
20 return 3 if grep { $hist{$_} == 3 } @cards
21 and grep { $hist{$_} == 2 } @cards;
22 return 4 if grep { $hist{$_} == 3 } @cards;
23 return 5 if (grep { $hist{$_} == 2 } @cards) == 4;
24 return 6 if grep { $hist{$_} == 2 } @cards;
30 $val =~ y/AKQJT98765432/ABCDEFGHIJKLM/;
31 return rank($val).$val;
36 for my $card (sort { val($b) cmp val($a) } keys %cards) {
37 say "$card $i ", val($card);
38 $sum += $cards{$card} * $i++;