On the other hand, I know you happen to be (mainly) a Windows developer, and on that platform you can't rename an old file into an existing file.

My recollection is that in the first "Windows" (aka "DOS"), you couldn't prevent ren nor copy from overwriting files (I recall being quite frustrated at not having "-i" and losing files as a result).

In modern Windows (aka "Win32"), you are correct that "ren" refuses to overwrite files. However, "copy" and "move" both have the most sensible default IMO, they ask before overwriting. Though I find it a bit strange that "ren" refuses to overwrite files but "copy" and "move" can't be made to act the same. You can prevent "copy" and "move" from asking ("/y"), but if you do, they unconditionally and silently overwrite.

As for programming APIs, my preference would be to allow the programmer to specify. Actually, I'd require the programmer to specify whether clobbering should done or an error should be returned. The API should allow this to be specified so that the operation can be done atomically. And I think no default behavior should be specified just to force the programmer to consciously make that decision, as there are cases where either behavior is inappropriate.

- tye        


In reply to Re^2: A DWIM too far? by tye
in thread A DWIM too far? by BrowserUk

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.