質問: grep {/\.csv$/i && -f "$dir/$_"} readdir(dir); #ディレクトリから拡張子csvでファイルだけを吸い出してリストにする closedir(dir); #ディレクトリを閉じる foreach (@list){ #リストから一つずつ調べる if(/(\d+)\.csv$/i){ #頭が数字のファイルだったら if($1 lt $del_target){ #$del_targetと比較して該当するなら unlink("$dir/$_"); #削除 } } } -------------------------------------- 上記の場合で試したところ、20040906の前にabcとつけると 削除されてしまいます。 後ろにabcがついている場合には削除されません。 どのようにすれば削除されないようになるでしょうか?
回答: if(/(\d+)\.csv$/i){ #頭が数字のファイルだったら を以下のように変えて下さい if(/^(\d+)\.csv$/i){ /のあとにハット(^)を入れて下さい。 確認してないので、自信なしです。