Beefy Boxes and Bandwidth Generously Provided by pair Networks
more useful options
 
PerlMonks  

Re: incrementing mixed letters and numbers

by poj (Abbot)
on Aug 22, 2017 at 06:46 UTC ( [id://1197781]=note: print w/replies, xml ) Need Help??


in reply to incrementing mixed letters and numbers

#!perl use strict; use Math::Base36 ':all'; my $number = decode_base36('9999'); print lc encode_base36(++$number)." " for 1..100;
poj

Replies are listed 'Best First'.
Re^2: incrementing mixed letters and numbers
by Anonymous Monk on Aug 22, 2017 at 13:35 UTC
    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'; }

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1197781]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others having a coffee break in the Monastery: (2)
As of 2024-04-25 20:09 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found