[Chapter 13] 13.2 Renaming a File
Author: Randal L. Schwartz, Erik Olson & Tom Christiansen
Date: 1999-07-02T01:35:27Z

#

| Chapter 13 File and Directory Manipulation |

## 13.2 Renaming a File

In the command shell, you change the name of a file with the rename command. And so it is with Perl, too, where this operation is denoted with `rename(``$old``,``$new``)`. Here's how to change the file named `fred` into `barney`:

    rename("fred","barney") || die "Can't rename fred to barney: $!";

Like most other functions, the `rename` function returns a true value if successful, so test this result to see whether the `rename` has indeed worked.

The `rename` function is perhaps more like the command-prompt move command than the command-prompt rename command. Perl's `rename` can move a file into a different directory, as can move.

The move command performs a little behind-the-scenes magic to create a full pathname when you say move file some-directory. However, the `rename` function cannot. The equivalent Perl operation is:

    rename("file","some-directory/file");

Note that in Perl we had to say the name of the file within the new directory explicitly. If you try to rename a file to a filename that already exists, `rename` will overwrite the existing file; this result is different than that of the Windows NT rename command, which will fail if the file already exists.

13.1 Removing a File |  | 13.3 Making and Removing Directories