in reply to Exclusively updating a file that continues to be repeatedly read

Even though this is a snippet, wouldn't it have been better to have used $$ (the process id) as part of the temporary filename? And/or I think there is a module for this sort of temporary file creation?

(but still, kudos on the nice code :) )

Ciao,
Gryn

Replies are listed 'Best First'.
RE: $$, perhaps?
by merlyn (Sage) on Aug 22, 2000 at 22:05 UTC
    Not needed, because you'll be the only one creating the temp file if you make it that far. And no, there's no module at the moment that does this just like this. Odd that you should say that, because I was thinking of making a small module to do just that. Interface would be something like:
    use File::UpdateExclusively; { my $handle = File::UpdateExclusively->on("/some/file/name") or die; my @data = <$handle>; ## process @data print $handle @data; }
    The return value would be a tied handle. Reading from the handle would read from the beginning of the original file (now flocked). Writing to the handle writes to the new location. Closing the handle or letting it go out of scope does the rename shuffle.

    Now to code that... {grin}

    -- Randal L. Schwartz, Perl hacker