http://www.perlmonks.org?node_id=270359


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

eduardo,
The concise, but less readable form:
#!/usr/bin/perl -w use strict; print base10_it('ba'), "\n"; sub base10_it { my $base_10; my @values = reverse split '' , $_[0]; $base_10 += ((ord($values[$_]) - 96) * 26 ** $_) for (0 .. $#value +s); $base_10; }
The more readable and verbose form:
#!/usr/bin/perl -w use strict; print base10_it('ba'), "\n"; sub base10_it { my $base_10; my $power = 0; my @values = split '' , $_[0]; while (my $val = pop @values) { $base_10 += (ord($val) - 96) * 26 ** $power; $power++; } $base_10; }
Cheers - Limbic~Region