【发布时间】:2017-01-19 04:18:59
【问题描述】:
您好,我是 perl 的初学者。我遇到了这个声明并阅读了 Stackoverflow 中的一些答案,这些答案说它检查非零文件大小。请解释一下。
【问题讨论】:
标签: perl scripting perlscript
您好,我是 perl 的初学者。我遇到了这个声明并阅读了 Stackoverflow 中的一些答案,这些答案说它检查非零文件大小。请解释一下。
【问题讨论】:
标签: perl scripting perlscript
解释涵盖了-s 运算符,仅此而已。它返回文件的大小;如果为空,则数字零在布尔上下文中被解释为假,而任何非零数字都为真。
print "has contents" if -s "/path/to/file";
! 是一个否定,&& 是逻辑“与”;因此,当文件为空或其他条件为假或两者兼而有之时,整个表达式为真。 (记住德摩根定律;!(x&y) 等价于 !x | !y。)
【讨论】:
-s 返回文件的大小。 perl 中的零被视为错误(类似于c)。如果将所有这些放在一起,这是检查给定文件是否为空的一种速记方法。
【讨论】: