在perl中使用-d test运算符

时间:2011-06-23 14:56:56

标签: perl

我正在阅读一些旧的代码,我发现了这句话:

$tmpStr = "/some/file/location/";

if(-d $tmpStr){
   printf("1");
}else{
   printf("2");
}

我对-d的作用感到困惑......有什么帮助吗?

3 个答案:

答案 0 :(得分:14)

如果以下字符串是目录,

-d将返回true。

请参阅-X in perlfunc

答案 1 :(得分:5)

检查目录是否存在。还有更多file test operations可用,例如:

   1. -r File is readable by effective uid/gid.
   2. -w File is writable by effective uid/gid.
   3. -x File is executable by effective uid/gid.
   4. -o File is owned by effective uid.
   5.
   6. -R File is readable by real uid/gid.
   7. -W File is writable by real uid/gid.
   8. -X File is executable by real uid/gid.
   9. -O File is owned by real uid.
  10.
  11. -e File exists.
  12. -z File has zero size (is empty).
  13. -s File has nonzero size (returns size in bytes).
  14.
  15. -f File is a plain file.
  16. -d File is a directory.
  17. -l File is a symbolic link.
  18. -p File is a named pipe (FIFO), or Filehandle is a pipe.
  19. -S File is a socket.
  20. -b File is a block special file.
  21. -c File is a character special file.
  22. -t Filehandle is opened to a tty.
  23.
  24. -u File has setuid bit set.
  25. -g File has setgid bit set.
  26. -k File has sticky bit set.
  27.
  28. -T File is an ASCII text file (heuristic guess).
  29. -B File is a "binary" file (opposite of -T).
  30.
  31. -M Script start time minus file modification time, in days.
  32. -A Same for access time.
  33. -C Same for inode change time (Unix, may differ for other platforms)

答案 2 :(得分:1)

测试以查看该路径是否是目录。它不是字符串比较。

这是字符串比较。

"Hello" ne "world"