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" }
Qiitaで
「3分間Perlテキストクッキング」
という連載を始めました。
テキスト処理を題材にして、3分くらいで読める分量で、書いていきます。
文字コード、テキストデータ、コンピュータにおけるテキストの扱いなど、ソフトウェアの基礎の話題も
3分間Perlテキストクッキング