}; my $r = Math::BigInt->bzero; for (split /^/, $scripture) { my($k, $n, $b, $v, $h, $p) = (-1, (0)x5); for (unpack "(A)*", $_) { if (ord) { if ($p) { $n++; eval { if ($p % 2) { $b *= $n / ++$k; } else { $v += $b; $b *= $n / ($n - $k); } } or $b = $p % 2; } $p = 0; } else { $p++; } } eval { $r *= $b * ($n - $k) / ($k + 1); $r += $v; }; } while ($r) { print+(" ", "a" .. "z")[($r->bdiv(23))[1]]; } print "\n"; __END__