3

嗨,我是 perl 的初学者。我遇到了这个声明并阅读了 Stackoverflow 中的一些答案,这些答案说它检查非零文件大小。请解释一下。

4

2 回答 2

2

解释涵盖了-s运营商,仅此而已。它返回文件的大小;如果它为空,则数字零在布尔上下文中被解释为假,而任何非零数字都为真。

print "has contents" if -s "/path/to/file";

!一个否定,&&是逻辑“和”;因此,当文件为空或其他条件为假或两者兼而有之时,整个表达式为真。(记住德摩根定律;!(x&y)等价于!x | !y。)

于 2016-09-11T16:38:47.907 回答
0

-s返回文件的大小。perl 中的零被视为错误(类似于)。如果将所有这些放在一起,这是检查给定文件是否为空的一种速记方法。

于 2016-09-11T16:36:17.307 回答