5 my %cards = map { /(\S+)/g } <>;
9 $hist{$_}++ for split //, shift;
11 $rh{$_}++ for values %hist;
14 return 3 if $rh{3} && $rh{2};
16 return 5 if $rh{2} && $rh{2} == 2;
24 $val =~ y/AKQT98765432J/ABCDEFGHIJKLM/;
30 my $max_rank = rank($card);
31 for my $c (split //, $card) {
35 $max_rank = $r if $r < $max_rank;
42 for my $card (sort { val($b) cmp val($a) } keys %cards) {
43 $sum += $cards{$card} * ++$i;
44 # say "$card $i ", val($card);