http://qs321.pair.com?node_id=270430


in reply to Alpha base-26 to base-10...

Another take.
use strict; use warnings; use constant OFFS => 1 - ord 'a'; use constant BASE => ord("z") - ord("a") + 1; sub alphabetic_to_base10 { local $_ = shift; my $num = 0; $num = ($num * BASE) + (OFFS + ord $_) for /./g; return $num; } printf "$_: %d\n", alphabetic_to_base10($_) for qw[a z aa az ba zz aaa + zba]; __END__ a: 1 z: 26 aa: 27 az: 52 ba: 53 zz: 702 aaa: 703 zba: 17629

Makeshifts last the longest.