$val = 'BB'; incr($val); ==> 'BC' $val = 'BZ'; incr($val); ==> 'CB'; $val = 'ZZ'; incr($val) ==> 'BBB'; #### #!/usr/bin/env perl use strict; use warnings; use Math::Fleximal; # use Data::Dump; use feature qw (say); my @consonants = qw (B C D F G H J K L M N P Q R S T V X Y Z); my $number = Math::Fleximal->new( "BB", \@consonants ); say $number->to_str(); say $number->base_10(); $number = $number->add("C"); say $number->to_str(); say $number->base_10(); say qq(--); $number = $number->set_value("BZ"); say $number->to_str(); say $number->base_10(); $number = $number->add("C"); say $number->to_str(); say $number->base_10(); say qq(--); $number = $number->set_value("ZZ"); say $number->to_str(); say $number->base_10(); $number = $number->add("C"); say $number->to_str(); say $number->base_10(); __END__ karls-mac-mini:monks karl$ ./fleximal.pl B 0 C 1 -- Z 19 CB 20 -- ZZ 399 CBB 400