在perl中被一个非常简单的if/else语句所困惑

ion*_*ish 3 perl if-statement boolean

print "content-type: text/html \n\n";   #The header
$file = "newtext.txt";
if (unlink($file) == 0) {
    print "File deleted successfully.";
} else {
    print "File was not deleted.";
}
Run Code Online (Sandbox Code Playgroud)

这是我从tizag中获取的一些代码.我不明白的是,真正的布尔值是1,而假为0.那么,为什么当我成功地删除我检查,看它是否会返回一个0文件?

TLP*_*TLP 6

这似乎是一个错误..来自perldoc perlfunc:

删除文件列表.成功时,它返回成功删除的文件数.失败时,它返回false并设置$!(错误):

如果返回值为0,则删除0个文件.

写它的正确方法是:

if (unlink($file)) { print "Success!" }
else { print "Unlink failed: $!" }
Run Code Online (Sandbox Code Playgroud)