To add just a little more to the learned discussion on this topic, you need to be worried about how flock() works on your system - on most Unices I have used, it is advisory only. That is, the locking is not enforced by the file system.

Normally, this isn't a problem. Until you write code like

open TEST, ">test.html" or die "A grim and horrible death: $!"; unless ( flock test, 6 ) { close TEST; die "Couldn't get the lock!"; }
The open() call will cause you all sorts of grief because you opened the file for writing. Regardless of the locking, the OS has just overwritten the file. If you can't get the lock, either you or perl will close the file, and write a file with exactly 0 bytes in it. You should always open the file for append. If you do get the lock, you can always use seek() to start rewriting.

turnstep's example does this, but I didn't see any explanation and this mistake has caused me a fair amount of pain previously.

mikfire


In reply to RE: This is weird... by mikfire
in thread This is weird... by SYbeginner

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.