您好,我是perl的初学者。我遇到了这个语句并阅读了Stackoverflow中的一些答案,它说它检查非零文件大小。请解释一下。
答案 0 :(得分:2)
解释涵盖-s
运算符,仅此而已。它返回文件的大小;如果它为空,则数字零在布尔上下文中被解释为false,而任何非零数字都为真。
print "has contents" if -s "/path/to/file";
!
是否定的,&&
是合乎逻辑的“和”;因此,当文件为空或其他条件为false或两者都是时,整个表达式为true。 (记住de Morgan的定律; !(x& y)相当于!x |!y 。)
答案 1 :(得分:0)
-s
返回文件的大小。 perl中的零被视为falses(类似于c)。如果将所有这些放在一起,则是检查给定文件不为空的简便方法。