OK, flaw in my logic there - which you could have simply pointed out without the challenge to a bet. Hope you feel superior now.
The point of my original post is that there may be a sufficiently simple way of doing it, without resorting to databases or with the caveats associated with random numbers and hashing.
Maybe the Time::HiRes module would be an option - microsecond resolution, if available, should be enough:
use strict;
use warnings;
use Time::HiRes qw(gettimeofday);
my($seconds, $microseconds);
my $index;
for (1..10) {
($seconds, $microseconds) = gettimeofday;
$index = sprintf("%d%06d", $seconds, $microseconds);
print "$index\n";
}
Output:
1290951829553400
1290951829553437
1290951829553448
1290951829553457
1290951829553467
1290951829553477
1290951829553487
1290951829553496
1290951829553505
1290951829553515
|