in reply to Re^2: Renaming an image file
in thread Renaming an image file

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

Replies are listed 'Best First'.
Re^4: Renaming an image file
by BrowserUk (Patriarch) on Nov 28, 2010 at 14:00 UTC

    And what happens if the site where these images are being uploaded is, or becomes, a FaceBook or Flickr?

    Or any site that has multiple upload servers; and/or uses threaded servers.

    Now any scheme that tries to use upload time--even to the microsecond; and with or without combination with current pid--is almost guaranteed to create duplicates.

      Fair and valid point - but much bigger context than OP had asked for. For such situations, probably a (multi-threaded) database solution would be the robust way to go. But probably overkill for a local, one-off solution.