Perlでファイル・ディレクトリの有無を確認するサンプルコードおよび実行結果を以下に記します。
htmlinsert(): The given local file does not exist or is not readable.
$ perl --version This is perl 5, version 14, subversion 2 (v5.14.2) built for i686-linux-gnu-thread-multi-64int (with 57 registered patches, see perl -V for more detail) <省略>
$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 12.04.4 LTS Release: 12.04 Codename: precise
ファイル・ディレクトリの有無を確認するためには以下の構文になります。
if (-e ファイル名orディレクトリ名) { ...
つまり、-eによりファイルおよびディレクトリの有無を確認することができます。
ファイル・ディレクトリの有無を確認するために以下のサンプルコードを紹介します。
#!/usr/bin/perl use strict; use warnings; my $fn = 'foo'; if (-e $fn) { print "$fn is found.\n"; } else { print "$fn is not found.\n"; }
実行結果
上記サンプルコードを端末上で実行した時の操作および出力です。
$ chmod +x exists.pl $ ./exists.pl foo foo is not found.
fooファイルが存在しないのでfoo is not found.が表示されます。
$ touch foo $ ./exists.pl foo foo is found.
touchコマンドでfooファイルを作成し再度実行しました。
fooファイル存在するのでfoo is not found.が表示されます。
ディレクトリで実行試してみます。
$ rm foo $ mkdir foo $ ./exists.pl foo is found.
ディレクトリでも-eオプションの場合、ファイルが存在することになります。
つまり、-eオプションはファイルまたはディレクトリの有無を確認することができます。
ディレクトリかどうかを確認する構文は以下のようになります。
if (-f ファイル名) { ...
以下のサンプルコードを記します。
#!/usr/bin/perl use strict; use warnings; my $dir = 'foo'; if (-f $dir) { print "$dir directory not is found.\n"; } else { print "$dir directory is found.\n"; }
実行結果
上記サンプルコードを端末上で実行した時の操作および出力です。
$ rm -fr foo
前回のサンプルコードで試したファイル(ディレクトリ)を削除します。
$ chmod +x isdir.pl $ touch foo $ ./isdir.pl foo directory not is found.
fooファイルを作成しスクリプトを実行するとfoo directory not is found.が表示されます。
$ rm foo $ mkdir foo $ ./isdir.pl foo directory is found.
fooファイルを削除しfooディレクトリを作成後スクリプトを実行するとfoo directory is found.が表示されます。
つまり、-fオプションによりファイルかどうかを確認することができます。
オプション-fで偽の場合はディレクトリであるかファイルが存在しないことになります。
以上、Perlでファイルおよびディレクトリの有無を確認するサンプルコードでした。
htmlinsert(): The given local file does not exist or is not readable.