in reply to Re: Shorter/Better way to rename list of files in a directory
in thread Shorter/Better way to rename list of files in a directory

You might also want to add a test on the rename:
rename $oldname, $_ or die "Can't rename $oldname to $_: $!";

Replies are listed 'Best First'.
Re^3: Shorter/Better way to rename list of files in a directory
by Zaxo (Archbishop) on Jun 02, 2006 at 10:21 UTC

    Joost++ on checking. That was careless of me. In that case, though, I'd probably just warn so the loop can keep on trying. While I'm at it, why not change $_ back so I still have an accurate file list after I'm done?

    rename $oldname, $_ or $_ = $oldname, warn "Can't rename $oldname to $_: $!";

    After Compline,
    Zaxo

Re^3: Shorter/Better way to rename list of files in a directory
by Scrat (Monk) on Jun 02, 2006 at 11:17 UTC

    Thanks Joost

    I've been told by some developers to try and not use die in my code if possible. Reasons being that it is not "pretty" and it might complicate debugging sometimes (if not used properly).

    I think one good reason for using it though, like Zaxo stated, is to avoid further bad handles.

      There will be times where you may not want the entire program execution to die if you encounter a problem. Instead, it's always a good idea to get into the habit of handling problems gracefully. For example, always test to see if an open or rename fails and then decide what to do at that point. Issuing a die might be an appropriate reaction. Or, depending on the program in question, you might want to log that error information somewhere, retry the action that failed or perform some other function instead of issuing a die.

      You really have to decide on a case by case basis as to what makes the most sense. The main thing to keep in mind is to always check return values and be prepared to handle error conditions.

      -- vek --