start page | rating of books | rating of authors | reviews | copyrights

Learning Perl

Learning PerlSearch this book
Previous: 13.1 Removing a File Chapter 13
File and Directory Manipulation
Next: 13.3 Creating Alternate Names for a File: Linking
 

13.2 Renaming a File

In the UNIX shell, you change the name of a file with the mv command. With Perl, the same 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, rename returns a true value if successful, so test this result to see whether the rename has indeed worked.

The mv command performs a little behind-the-scenes magic to create a full pathname when you say mv 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. Also, the mv command copies the file when the file is renamed from one mounted device to another (if you have one of the better operating systems). The rename function isn't as smart, so you'll get an error, indicating you have to move it around some other way (perhaps by invoking a mv command on the same names). The File::Copy module supports a move function.


Previous: 13.1 Removing a File Learning Perl Next: 13.3 Creating Alternate Names for a File: Linking
13.1 Removing a File Book Index 13.3 Creating Alternate Names for a File: Linking