in reply to Use time() to create unique ID
Instead of using time to generate your unique ids how about a derivative of rand()? Such as:
A sample run produces:use strict; use constant id_length => 128; foreach (0..3) { printf "%s\n",genUniqueID(); } exit(0); sub genUniqueID { my @alpha=('A'..'Z','a'..'z','0'..'9'); my $buffer=""; foreach (1.. id_length) { $buffer = $buffer . $alpha[rand($#alpha+1)]; } return $buffer; } __END__
--$ perl unique_id.pl vNJaCW91KaRqtGuVKffRY1ufjOWN8O09h8C2QL28mdNWoR +fuLVBawYxWuDLC6L2q2LYPoyyiit6L7jb9OYP3ZbU4Jdf9A1pQMwOBppsEpVEg5HdCijL +GlvPSMDe14ANL 8W6voRR5r1B2zai2aUEYRfC2tXtJKoI1jU0J9gWP7hXdrMV8oQ6qTbQa3B9U6ebc99eOM8 +TeNacHwUuvFmakIYCWqIfrwjwE01bhxhGcfHKJOcbapt6fRWqhoalTzutb GDqdFLUCWe1pichxfUFdQybLLmzsFjdFC2baq7Ec12ftGp6sckbvKrbeGmdt5wj7HYuQ5B +nOJQB5eGERsWiMolfHm4f7xYFf6UVfENLhyEn2CNOp55Wh1sajtq6ZOV3T I4V3YVHak0pKAwN0V4rLdvAXFRqz1lSCZ9LnDHdZLbPLDQrzd1dJx5iFCXqH4GrEaMgB05 +DzMUYSTW00y6neDrGOWVphi1xZ2PMxrDilKTJCxBkB5P8oegJCCeI43FpN --$
Please note that you can modify the length of the unique key by changing the value in the use constant statement to be whatever you want. However the longer the key the more likely it is to be unique.
| Peter L. Berghold -- Unix Professional Peter at Berghold dot Net | |
| Dog trainer, dog agility exhibitor, brewer of fine Belgian style ales. Happiness is a warm, tired, contented dog curled up at your side and a good Belgian ale in your chalice. | |
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Re: Use time() to create unique ID
by davido (Cardinal) on Sep 16, 2003 at 17:27 UTC | |
by blue_cowdawg (Monsignor) on Sep 16, 2003 at 17:57 UTC | |
by sauoq (Abbot) on Sep 16, 2003 at 23:07 UTC | |
by blue_cowdawg (Monsignor) on Sep 17, 2003 at 00:24 UTC | |
by sauoq (Abbot) on Sep 23, 2003 at 18:47 UTC | |
|
Re: Re: Use time() to create unique ID
by sauoq (Abbot) on Sep 16, 2003 at 23:22 UTC | |
by blue_cowdawg (Monsignor) on Sep 16, 2003 at 23:59 UTC | |
by sauoq (Abbot) on Sep 23, 2003 at 19:04 UTC |