小池啓仁 ヒロヒト応援ブログ By はてな

小池啓仁(コイケヒロヒト)の動画など。

小池啓仁 ヒロヒト応援ブログ By はてな

ワイルドカードでのファイル削除

Perlでファイル削除する時は、C言語と同様にunlink関数を使います。
C言語では、unlink関数の引数に削除するファイル名を一つ渡します。
Perlでは、上記はもちろんですが、ファイル名のリストも渡すことが出来、つまり複数のファイルを削除することが出来るのです。


で、ここからが本題です。
フォルダ内のファイルをワイルドカードを使って削除したい場合が、結構普通にありますね。
その場合は、unlink関数にglob関数を組み合わせます。
以下は、dataフォルダ内の拡張子が『txt』のファイルをすべて削除します。

use strict;
use warnings;
    unlink glob('.\data\*.txt') or die "ファイル削除エラー($!)";

つまり、glob関数は、フォルダ内のワイルドカードにマッチしたファイル名をすべてリスト返し、unlink関数は、そのリスト内のファイルをすべて削除します。