Rather than generating them all up front (which would be pretty silly if you don't wind up using them all), why don't you generate them one by one as you need them? A closure-as-iterator would work pretty well:

#! /usr/bin/perl -w use strict; sub make_gen { my $num = shift; sub { sprintf '%09s', $num++ } }; my $g1 = make_gen( 1 ); print $g1->(), "\n", $g1->(), "\n\n"; my $g2 = make_gen( 'zzx' ); print $g2->(), "\n" for 1..4; __END__ output: 000000001 000000002 000000zzx 000000zzy 000000zzz 00000aaaa

You can play around with what the internal sub returns, in order to generate the appropriate codes for your application.

update: fixed length of codes: was 10 instead of 9. I could never read a spec :o)


In reply to Re: Generating alphanumeric codes (with a closure) by grinder
in thread Generating alphanumeric codes by Gorby

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.