if (print) 在 Perl 中是什么意思?

What does if (print) means in Perl?

我得到了以下代码

if (print msgsnd($ipc_msg_to_mppt_id, $msg, 0)) {

这里print的目的是什么?什么是 returns?

文档说明 returns true 如果成功。但是怎么打印不成功呢?

打印不需要像将输出转储到控制台那样简单。它也可以被重定向到一个文件或某种其他类型的管道。如果它被重定向到您没有写入权限的文件,则打印到该文件将失败。如果它通过管道传输到另一个程序并且后者程序终止,那么写入它会导致管道损坏错误。

作为一般原则,I/O 操作不在程序的控制范围内,因此您应该始终假设它们可能会失败。读取或写入文件、控制台或任何类型的套接字或管道,总是会在没有警告的情况下失败。所以如果你想让你的程序对此做些什么,你需要检查 return 函数的值,比如 print.