in reply to Generating alphanumeric codes

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)