ファイルテスト演算子を使って何かする

これまた非常に基礎的な話ですが「Effective Perl」にあった例文です。

for my $file (glob '*') {
  print "$file\n" if -T $file;
}

カレントディレクトリにある全てのテキストファイル名を標準出力に吐いてるだけですが、こういう例文だと実際にどういう場面ですぐに使えるかが分かっていいですね。

て、これはPerlだけでなくシェルスクリプトのtest演算子も合わせてみておくべき話か。

とりあえずここではPerlについてファイルテスト演算子の中で使用頻度の高そうなものを自分用メモとして纏めておきます。

-e : ファイルが存在する
-z : 0バイトファイル
-s : 0バイトファイルじゃない

-f : 通常ファイル
-d : ディレクトリ
-l : シンボリックリンク
-T : テキストファイル
-B : バイナリファイル

-M : 最終更新日時からの日数
-A : 最終アクセス日時からの日数
-C : iノードが変更されてからの日数


Effective Perl (ASCII Addison Wesley Programming Series)

Effective Perl (ASCII Addison Wesley Programming Series)