>>90
スマソ、もう一個軽微なBugあった。

6行目
sub 桁に含む個数($n, $d){ scalar (() = $n =~ /$_/g) } # $n =~ tr/$d//r
                             ↓$_を $d に修正
sub 桁に含む個数($n, $d){ scalar (() = $n =~ /$d/g) } # $n =~ tr/$d//r

ただ、このBug $_でも解は合うんだよね。
上位関数から呼び出すとき、第二引数に $_ を渡すため、下位関数で引数 $d のかわりに $_ を参照してもたまたま動いちゃってたというだけ。