ファイルを読み書きする前に、そのファイルがすでに存在するかどうかを知りたい場合どうしたらいいのでしょうか?
Perlではこのようなチェックをするファイルテストが20以上あります。
ファイルテストは-(ハイフン)の後にテスト項目のスイッチを付けてファイル名をその後に記入します。
<例>
-e "file.txt"
| テスト項目 | 結果 |
| -r | ファイルは有効、読むことが可能 |
| -w | ファイルは有効、書くことが可能 |
| -x | ファイルは有効、実行可能 |
| -o | ファイルは有効ユーザで所有されている |
| -R | ファイルは実ユーザで読むことが可能 |
| -W | ファイルは実ユーザで書くことが可能 |
| -X | ファイルは実ユーザで実行可能 |
| -O | ファイルは実ユーザで所有されている |
| -e | ファイルは存在する |
| -z | ファイルのサイズがゼロ |
| -s | ファイルのサイズがゼロでない(サイズを返す) |
| -f | 通常のファイル |
| -d | ディレクトリ |
| -l | シンボリックリンク |
| -p | ネームドパイプ(FIFO) |
| -S | ソケット |
| -b | ブロック特殊ファイル |
| -c | キャラクタ特殊ファイル |
| -u | setuid ビットが立っている |
| -g | setgid ビットが立っている |
| -k | sticky ビットが立っている |
| -t | ファイルハンドルは端末に対して開かれている |
| -T | テキストファイル |
| -B | バイナリファイル(-T の逆) |
| -M | スクリプトが開始された時のファイルが変更されてからの日数 |
| -A | スクリプトが開始された時のファイルが最後にアクセスされてからの日数 |
| -C | スクリプトが開始された時のファイルの inode が変更されてからの日数 |