Perlでファイル・ディレクトリの有無を確認する †Perlでファイル・ディレクトリの有無を確認するサンプルコードおよび実行結果を以下に記します。 スポンサーリンク 関連記事 †動作確認環境 †$ 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ファイルを作成し再度実行しました。 ディレクトリで実行試してみます。 $ rm foo $ mkdir foo $ ./exists.pl foo is found. ディレクトリでも-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オプションによりファイルかどうかを確認することができます。 以上、Perlでファイルおよびディレクトリの有無を確認するサンプルコードでした。 スポンサーリンク |