グロブ

シェルの * の展開と同じことが perl でも出来る。カレントディレクトリのグロブを展開すると以下のような感じ。(join で結合してるだけで、glob 自体は、単なるファイル名のリストを返す)

% perl -e "warn join ',', glob '*';"
a,b,c,d,do.pl,e at -e line 1.

何て簡単。これは、

my @files = <*>;

と書くのと同じことらしい。
perl5.6 まではこれは内部で csh を呼んでいたそうだ。なので、大量のファイルが存在するディレクトリでこれを使うと、実行に時間がかかったり、止まっちゃったりしたらしい。今はそんなこと無いと「初めてのPerl」に書いてるが、根拠はよくわからないので、パフォーマンスを確認してから使った方がよさそうだ。

my $num = unlink glob "*.bak";   # *.bak のファイルをすべて削除
warn "delete $num files."

なんてことも出来るんだ。