【发布时间】:2014-11-08 01:19:11
【问题描述】:
所以我是 Perl 的新手,这是我的第一个程序(不包括一些基本教程来掌握非常基本的语法)
我想要做的是将指定目录中的所有文件重命名为“文件 1”、“文件 2”、“文件 3”等
这是我目前得到的代码:
use 5.16.3;
use strict;
print "Enter Directory: ";
my $directoryPath = <>;
chdir('$directoryPath') or die "Cant chdir to $directoryPath$!";
@files = readdir(DIR); #Array of file names
closedir(DIR);
my $i = 1; #counting integer for file names
my $j = 0; #counting integer for array values
my $fileName = File;
for (@files)
{
rename (@files[j], $fileName + i) or die "Cant rename file @files[j]$!";
i++;
j++;
}
chdir; #return to home directory
我有很多问题:
1:每当我尝试更改目录时,我都会收到“或死亡”消息。我想知道这是否与我开始的工作目录有关,在向下遍历不同的目录路径之前,我是否需要通过执行类似“..\”的操作进入 C: 目录?
2:错误消息“使用“严格的子”时不允许使用裸词“文件”
3:与第 2 点相同。但对于“i”和“j”
4:错误消息“全局符号“@files”需要明确的包名称'
注意:如果我注释掉行后的所有内容,我显然只能得到错误一,否则程序将无法编译。
【问题讨论】: