Perl入門ゼミ

テキスト処理、Linuxサーバー管理、Web開発ならPerl
  1. Perl
  2. 演算子
  3. ファイルテスト
  4. here

ファイルの存在を確認する

ファイルが存在するかどうかを確認するには、ファイルテスト演算子「-e」を使用します。

-e $file

ファイルが存在すると真値を、存在しないと偽値を返します。ディレクトリやシンボリックリンクなどもファイルとして扱われます。Unixではディレクトリも特別なファイルとみなしファイルという概念でとらえるからです。

通常ファイルが存在するかどうかを確認

ディレクトリではない通常のファイルが存在するかどうかを確認したい場合は、ファイルテスト演算子「-f」で確認できます。

-f $file

通常ファイルが存在すると真値を、存在しないと偽値を返します。通常ファイルとはテキストファイルやバイナリファイルなどのデータを格納しているファイルのことです。

存在を確認できるファイルの種類

その他に、ディレクトリの存在やシンボリックリンクの存在を確認できるファイルテスト演算子もあります。

ファイルの種類 対応するファイル演算子
通常ファイル -f
ディレクトリ -d
シンボリックリンク -l
名前つきパイプ、パイプであるファイルハンドル -p
ソケット -S
ブロックスペシャルファイル -b
キャラクタースペシャルファイル -c

用語の解説のページにリンクを張っておきました。

サンプルプログラム

ファイルテスト演算子「-e」を使ってファイルの存在を確認するサンプルです。

use strict;
use warnings;

# ファイルの存在を確認する。
# -e ファイル名
# -e を使えば、ディレクトリやファイルやシンボリックリンクなど
# を区別せずに、それが、存在するかどうかを確認できます。

print "1: ファイルの存在を確認する。 -e \n";
my $file_all_type = 'a';

if (-e $file_all_type) {
  print "'$file_all_type' は、存在します。\n";
}
else { print "'$file_all_type' は、存在しません。\n" }

ファイル演算子 -f を使って通常ファイルの存在を確認するサンプルです。

use strict;
use warnings;

# 通常ファイルの存在を確認する。
# -f ファイル名

print "1: 通常ファイルの存在を確認する。 -f \n";
my $file = 'a.txt';
if (-f $file) {
  print "'$file' は、存在します。\n";
}
else { print "'$file' は、存在しません。\n" }
  • Perlとはテキスト処理の記述性とパフォーマンスに優れ、正規表現が言語に組み込まれているプログラミング言語です。
  • Linuxサーバーでのフィルタリングプログラム、複数行の文字列を処理、ファイル内容の検索・置換などが得意
  • Perlはgitopensslなど広く普及したUnix/Linuxミドルウェアの補助ツールとして採用実績あり。後方互換性とポータビリティの高さがひとつの理由と推測。
  • 大量のテキストを扱うWeb開発も得意。ロングテールSEOを意識したWebサイト、アドテクやソーシャルゲームでの50ms以内のJSONの生成など。