in reply to Re: A DWIM too far?
in thread A DWIM too far?

Note that if you want to do a "safe" rename, you can do so, although it involves a copy

I may have missed something, but I think it can be done much more easily like this:

sub rename_i { my($src, $dest) = @_; link($src, $dest) or die "Can't link $src to $dest: $!"; unlink($src) or die "Can't unlink $src: $!"; }

Hugo

Replies are listed 'Best First'.
Re: A DWIM too far?
by Abigail-II (Bishop) on Jun 20, 2004 at 16:20 UTC
    Well, yes, of course. And I should have know, because that's classical idiom. I'm just going to blame YAPC. 12 hours of sleep in 3 nights.

    Abigail (Conferences and Perlmonks don't mix)

Re^3: A DWIM too far?
by ysth (Canon) on Jun 23, 2004 at 07:49 UTC
    That may not work for directories.

    But I think that idiom justifies Unix's choice of rename behavior. If rename failed when a new file already exists, there isn't good way to code a rename-that-overwrites.