Rather than create a random directory name, create a link name which encodes expire time and possibly a small numeric key for security (serial number or partial MD5 or whatever). It is then easy to expire access by examining the link names, pulling out the expire time and deleting the link as appropriate. That even scales very nicely to selling n days worth of access.

There is a hint "keep track of which one is still valid to be "sold"" that only one user may have access at a time. If that is the case the link name should include the target dir name so you can search (using readdir for example) to see if the material is in use or not.


DWIM is Perl's answer to Gödel

In reply to Re: Random directory creation/deletion scheduling logic problem by GrandFather
in thread Random directory creation/deletion scheduling logic problem by hmbscully

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.