I want to rename files in a directory with this script:
#!bin/perl
use strict;
use warnings;
use File::Copy qw(move);
my $directory="/home/porter/blue";
my @names;
opendir(DIR, $directory) or die "couldn't open $directory: $!\n";
my @files = readdir DIR;
my $a = @files;
@names = ("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l",
+"m", "n", "o", "p");
for (my $i=0; $i < $a; $i ++) {
move $files[$i], $names[$i];
};
closedir DIR;
And as result I get:
Use of uninitialized value $to in -d at /usr/share/perl/5.22/File/Copy
+.pm line 256.
Use of uninitialized value $to in stat at /usr/share/perl/5.22/File/Co
+py.pm line 260.
Use of uninitialized value $to in rename at /usr/share/perl/5.22/File/
+Copy.pm line 281.
Use of uninitialized value $to in stat at /usr/share/perl/5.22/File/Co
+py.pm line 291.
Use of uninitialized value $to in string eq at /usr/share/perl/5.22/Fi
+le/Copy.pm line 64.
Use of uninitialized value $to in -d at /usr/share/perl/5.22/File/Copy
+.pm line 96.
Use of uninitialized value $to in stat at /usr/share/perl/5.22/File/Co
+py.pm line 104.
Use of uninitialized value $to in open at /usr/share/perl/5.22/File/Co
+py.pm line 167.
Use of uninitialized value $to in unlink at /usr/share/perl/5.22/File/
+Copy.pm line 30
What is the meaning of these errors? And can the script be improved?