等效于 print FILEHANDLE sprintf(FORMAT, LIST)
,除了不会追加 $\
(输出记录分隔符)。FORMAT 和 LIST 实际上被解析为单个列表。列表的第一个参数将被解释为 printf
格式。这意味着 printf(@_)
将使用 $_[0]
作为格式。有关格式参数的说明,请参见 sprintf。如果 use locale
(包括 use locale ':not_characters'
)生效并且 POSIX::setlocale
已被调用,则格式化浮点数中使用的十进制分隔符将受 LC_NUMERIC
本地化设置的影响。请参见 perllocale 和 POSIX。
出于历史原因,如果您省略列表,则使用 $_
作为格式;要使用没有列表的 FILEHANDLE,您必须使用裸字文件句柄,例如 FH
,而不是间接句柄,例如 $fh
。但是,这很少能达到您想要的效果;如果 $_
包含格式代码,它们将被替换为空字符串,并且如果启用了 警告,则会发出警告。如果您想打印 $_
的内容,只需使用 print
即可。