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


in reply to Re: incrementing mixed letters and numbers
in thread incrementing mixed letters and numbers

That certainly wins the "don't reinvent the wheel" award. :)

I ended up going with something a bit more self-contained (do need POSIX though, just to get started). Removing the validation checks from the snippet below, where $ARGV[0] is the first value, and $ARGV1 is the count, I ended up with:

#!/usr/bin/perl -w use strict; use POSIX; use feature 'state'; my $b36str = lc $ARGV[0]; my $begnum = POSIX::strtol($b36str,36); for (my $i = $begnum; $i < $begnum+$ARGV[1]; $i++) { $b36str = base36($i); print "$b36str\n"; } sub base36 { my ($tmpval) = @_; state $digits = join '', '0'..'9', 'a'..'z'; my $newstr = ''; while ($tmpval) { $newstr = substr($digits, $tmpval % 36, 1) . $newstr; $tmpval = int $tmpval / 36; } return $newstr || '0'; }