If your only purpose is to name the files, do you need a "globally" unique ID? Why not just use an increment, along with the author & first letter. e.g. > Aeschylus / Prometheus Bound => aeschylus_p01.txt > Aeschylus / Suppliant Maidens => aeschylus_s01.txt > American State / Articles of confederation => american_state_a01.txt > ... > Aristotle / On Generation And Corruption => aristotle_o01.txt > Aristotle / On The Gait Of Animals => aristotle_o02.txt > Aristotle / On The Generation Of Animals => aristotle_o03.txt If you generate your integers in alphabetical order, they'll always be the same for each title and you'll never get filename collisions. Unless your list will grow - will it? -Andrew On 2010-05-28, at 9:34 AM, Eric Lease Morgan wrote: > Given a list of unique strings, how can I generate a list of short, unique integers? > > I have a list of about 250 unique author/title combinations, such as: > > Aeschylus / Prometheus Bound > Aeschylus / Suppliant Maidens > American State / Articles of confederation > American State / Declaration of Independence > Aquinas / Summa Theologica > Aristophanes / Achamians > Aristophanes / Clouds > Aristophanes / Ecclesiazusae > Aristotle / On Generation And Corruption > Aristotle / On The Gait Of Animals > Aristotle / On The Generation Of Animals > ... > > From each author/title combination I want to create a file name (key). Specifically, I want a file name with the following form: author-firstwordofthetitle-integer.txt Such a scheme will make it (relatively) easy for me to look at the file name and know the what title is and by whom. > > Using Perl, how can I convert the author/title combination into some sort of integer, checksum, or unique value that is the same every time I run my script? I don't want to have to remember what was used before because I don't want to maintain a list of previously used keys. Should I use some form of the pack function? Should I sum the ASCII values of each character in the author/title combination? > > -- > Eric Morgan