【问题标题】:What's the meaning of `unless -d`?`除非-d`是什么意思?
【发布时间】:2017-01-18 22:30:19
【问题描述】:

阅读代码,我发现:

use File::Path;
mkpath($hinitdir) unless -d $hinitdir;
mkpath($hrestdir) unless -d $hrestdir;

那么-d这个选项是什么意思呢?

【问题讨论】:

  • 查看文件测试操作符的文档-X : -d File is a directory
  • 请注意,mkpath 已经跳过创建现有目录的尝试,因此 mkpath($hinitdir) unless -d $hinitdir; 应该只是 mkpath($hinitdir);
  • @ikegami 是的,简洁就是美。谢谢

标签: perl


【解决方案1】:

Perl 有-X 形式的“文件测试”运算符,其中破折号后面的字母告诉Perl 你想测试什么。这些都记录在perlfunc 中,统称为-X

-d 测试目标(在本例中为 $hinitdir$hrestdir)是一个目录。文件测试运算符的目标可以是文件句柄的命名文件。

除此之外,最近的File::Path 版本使用make_path 而不是旧的mkpath

【讨论】:

    猜你喜欢
    • 2013-07-16
    • 1970-01-01
    • 1970-01-01
    • 2010-10-24
    • 2019-12-05
    • 2014-06-04
    • 2020-06-26
    • 2014-04-09
    相关资源
    最近更新 更多