Perl--X

提供:Dev Guides
移動先:案内検索

Perl -X関数

構文

-X FILEHANDLE
-X

定義と使い方

ファイルテスト。Xは以下の文字のいずれかです。 彼の単項演算子は、ファイル名またはファイルハンドルのいずれか1つの引数を取り、関連するファイルをテストして、それについて何かが真であるかどうかを確認します。

引数が省略された場合、$ _をテストします

戻り値

  • 条件が真の場合1
  • 条件が偽の場合は0
-r  File is readable by effective uid/gid.
-w  File is writable by effective uid/gid.
-x  File is executable by effective uid/gid.
-o  File is owned by effective uid.

-R  File is readable by real uid/gid.
-W  File is writable by real uid/gid.
-X  File is executable by real uid/gid.
-O  File is owned by real uid.

-e  File exists.
-z  File has zero size (is empty).
-s  File has nonzero size (returns size in bytes).

-f  File is a plain file.
-d  File is a directory.
-l  File is a symbolic link.
-p  File is a named pipe (FIFO), or Filehandle is a pipe.
-S  File is a socket.
-b  File is a block special file.
-c  File is a character special file.
-t  Filehandle is opened to a tty.

-u  File has setuid bit set.
-g  File has setgid bit set.
-k  File has sticky bit set.

-T  File is an ASCII text file (heuristic guess).
-B  File is a "binary" file (opposite of -T).

-M  Script start time minus file modification time, in days.
-A  Same for access time.
-C  Same for inode change time

ファイルを使用して次の例を試してください。

stat($filename);
print "Readable\n" if -r _;
print "Writable\n" if -w _;
print "Executable\n" if -x _;
print "Setuid\n" if -u _;
print "Setgid\n" if -g _;
print "Sticky\n" if -k _;
print "Text\n" if -T _;
print "Binary\n" if -B _;

# Another way of testing
if( -e $filename ){
   print " File $filename exists\n";
}