print

打印字符串或字符串列表。如果成功,则返回 true。FILEHANDLE 可能是一个标量变量,其中包含文件句柄的名称或引用,从而引入一级间接引用。(注意:如果 FILEHANDLE 是一个变量,并且下一个标记是一个术语,则它可能会被误认为是一个运算符,除非你插入一个 + 或用括号括住参数。)如果省略 FILEHANDLE,则打印到最后选定的(参见 select)输出句柄。如果省略 LIST,则将 $_ 打印到当前选定的输出句柄。若要仅使用 FILEHANDLE 将 $_ 的内容打印到其中,你必须使用一个裸字文件句柄,如 FH,而不是一个间接文件句柄,如 $fh。若要将默认输出句柄设置为 STDOUT 以外的其他内容,请使用 select 操作。

当前 $, 的值(如果有)将在每个 LIST 项之间打印。当前 $\ 的值(如果有)将在整个 LIST 打印完毕后打印。由于 print 采用 LIST,因此 LIST 中的任何内容都将在列表上下文中进行评估,包括您将返回列表传递给 print 的任何子例程。小心不要在 print 关键字后面加上左括号,除非您希望相应的右括号终止 print 的参数;将所有参数括在圆括号中(或插入一个 +,但这看起来不太好)。

如果您将句柄存储在数组或哈希中,或者在一般情况下,无论何时使用比裸字句柄或普通未加下标的标量变量更复杂的表达式来检索它,您都必须使用返回文件句柄值的块,在这种情况下,不能省略 LIST

print { $files[$i] } "stuff\n";
print { $OK ? *STDOUT : *STDERR } "stuff\n";

打印到已关闭的管道或套接字将生成 SIGPIPE 信号。有关信号处理的更多信息,请参见 perlipc