If the OPs system allows users to "edit" their images, then when the image has been edited, the new image will hash to a different value. No data loss.
Really? What did the OP write that makes you assume this? All he describes is renaming existing files. I'd say that's another assumption.
Whenever we reply to an OP, we inevitably make some assumptions.
Sure. State them in your reply. Knowingly assuming things, and keeping them hidden from your reply is very, very bad. This was your answer: Rather than a random number, I'd suggest using a digest of the files contents. Digest::MD5 for example. Whilst not guaranteed to be unique, the chance of collision is remote. All the assumptions you made here, you kept for yourself.

But, again, I'd like to point out, I did not have a problem with your original suggestion. I had problems with the replies following morgons observation there's a problem if there are two files with the same content.

But it is still superior to the solution that you offered.
I did not offer a solution because by the time I read the thread, good suggestions were already made. There's little value in repeating suggestions.

In reply to Re^14: Renaming an image file by JavaFan
in thread Renaming an image file by Anonymous Monk

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.