2016-05-04 8 views
0

私はいくつかのPerlコードに次のが見つかりました:if文で-eの意味は何ですか?

if (! -e $options{"inPath"}){ 
     $logger->fatal("Directory \'$options{\"inPath\"}\' does not exist.\n"); 
} 

if文の-eは何をしますか?

+0

'はperldoc -f -e'。 Perlが 'bash'から継承したものです。 – tadman

+1

ログに記録されているエラー(存在しない)が誤っている可能性があることに注意してください。 '$!'は実際のエラーを含んでいます。たとえば、存在するかどうかを確認するための十分な権限がない可能性があります。 – ikegami

答えて

3

online perlドキュメントサイトの​​を参照してください。 -e '/foo'は、ファイル/fooが存在する場合にtrueを返します。

システムにperldocがインストールされている場合は、コマンドラインからもアクセスできます。

perldoc -f -X 
+2

'perldoc -f -e'も同様に動作します。 – ThisSuitIsBlackNot

3

perldocunaryオペレータ-eチェックファイルが存在する場合。


はperldoc単項ファイルテスト演算子のリスト:

-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 (false if symlinks aren't 
     supported by the file system). 
    -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 or UTF-8 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 (Unix, may differ for other 
    platforms) 
関連する問題