$dir = "/home/naveen/mp3tag/testfolder";
opendir(DMP3, $dir) || die("Cannot open directory");
@files= readdir(DMP3;
foreach $f (@files)
{
unless (($f eq ".") || ($f eq ".."))
{
$oldfile = $f;
$newfile = $f;
$newfile =~ s/ /_/g;
print "Old file: $oldfile \t";
print "New file: $newfile";
print "\n";
rename ("$oldfile", "$newfile") or warn "Couldn't rename $oldfile to $newfile !\n";
}
}
我正在编写一个简单的程序,以将下划线添加到现有文件并重命名它。这是代码得到了多少。然而,它不能重命名文件,并给我一个警告,我不知道错误在哪里。尝试重命名脚本和cmd行中的文件时出错
此外,当我在cmd行上尝试相同的行时,我得到以下错误消息。
$ rename Jacques\ Greene\ -\ Clark\ \(Original\ Mix\).mp3 JG - C.mp3
Bareword "mp3" not allowed while "strict subs" in use at (eval 1) line 1.
$ rename Jacques\ Greene\ -\ Clark\ \(Original\ Mix\) JG - C
Can't locate object method "Original" via package "Mix" (perhaps you forgot to load "Mix"?) at (eval 1) line 1.
此程序将不会重命名* A *文件,它会在目录重命名*所有*文件。另外,“给我一个警告”......为什么你不提这个警告是什么? – TLP 2012-04-21 14:32:04
那么警告是警告消息,我得到它不能重命名。 cmd行上的其他错误消息列在cmd本身下。 – Naveen 2012-04-21 14:55:23
您应该在警告中包含'$!'以查看实际错误。 – TLP 2012-04-21 15:04:36