#!/usr/bin/perl $|=1; my @b = ('5', '/', '6', '3', 'X', 'X', '7', '0', '4', '3', 'X', '4', '/', '8', '1', '3', '/', '6'); $r = a(@b); print "score is $r\n"; sub a { map {s/(\/|X)/10/} @_ ; while ($_ = shift) { if (/^.$/) { $t += ($_[0] == 10 ? $_[1] + shift : $_ + shift) }else{ $t+= ($_[0] < 10 && $_[1] == 10 ? 20 : 10 + $_[0] + $_[1]) } last if ++$f ==10 } $t }