1. chdir改變工作目錄...chdir "/etc" or die "cannot chdir to /etc:$!";如果參數為空白,改變到主目錄
2. my @all_files = glob "*"; my @bz_file = glob "*.bz2"; 只對目前的目錄下
3. my @all_files = <*>; my $dir = "/etc"; my @dir_files = <$dir/* $dir/.*>;
4. 如果角括弧之間是一個嚴格意義上的(單純的)標識符,則其為檔案控制代碼讀入操作;否則,為 globbing 操作
5. 如果沒有加上目錄名,則測試部分將只檢測目前的目錄下的檔案,而不是$dirname 下的檔案.這是使用目錄控制代碼最常犯的一
個錯誤
6. unlink刪除檔案...管理員權限下慎用
7. rename 重新命名,rename "old","new";
8. foreach my $file (glob “ *.old” ){<br /> my $newfile = $file;<br /> $newfile =~ s//.old$/.new/;<br /> if ( -e $newfile){<br /> warn “ can’t rename $file to $newfile: $newfile exists/n”;<br /> }elsif(rename $file, $newfile){<br /> ##成功,什麼也不做<br /> } else {<br /> warn “ rename $file to $newfile failed: $!/n ”;<br /> }<br />}
批量改名
9. 在極少情況下,希望欺騙別的程式,關於檔案最近修改的時間,以及被訪問的時間,你可以使用 utime 函數來做到這些.
前兩個參數給出最近訪問時間和修改時間,剩下的參數是需要改變這些值的檔案清單
my $now = time;
my $ago = $now - 24*60*60;
utime $now,$ago,glob"*";
更新目前的目錄下的所有檔案,使它們看起來是昨天修改的,而訪問時間為現在.