通常rename文件名的代碼如下:
my $newFile;
foreach my $file ( glob "*\.atp")
{ #查找當(dāng)前目錄下所有以“.atp”為后綴的文件
print "$file\n";
if($file=~/(.*).atp/)
{
$newFile="$1_vcd.atp";#重命名后的文件名
}
if(-e $newFile){ #如果修改后會(huì)導(dǎo)致文件重名,則輸出警告,不作處理
warn "Can't rename $file to $newFile. The $newFile
exists!\n";
}else{
rename $file, $newFile #重命名文件
or
warn "Rename $file to $newFile failed: $!\n"; #如果重命名失敗,則輸出警告
}
}
上面的代碼需要解釋的也只有文件名通配這塊了。PERL文件名通配的常用方式有兩種:
(1)glob
my @files=glob
"*";""中的是模式,任何可以在命令行中輸入的模式都可以放在""中。@files中包含當(dāng)前目錄下的所有非以.號(hào)開頭的文件名。
my @files=golb "* .*";可以獲得當(dāng)前目錄下的所有文件名。
(2)鉆石操作符<>
my @files=<*>;效果和glob
"*";完全一致。
my @files=<* .*>;
|