Equivalent to print FILEHANDLE sprintf(FORMAT, LIST)
, except that $\
(the output record separator) is not appended. The FORMAT and the
LIST are actually parsed as a single list. The first argument
of the list will be interpreted as the printf
format. This
means that printf(@_)
will use $_[0]
as the format. See
sprintf for an
explanation of the format argument. If use locale
(including
use locale ':not_characters'
) is in effect and
POSIX::setlocale() has been called, the character used for the decimal
separator in formatted floating-point numbers is affected by the LC_NUMERIC
locale setting. See perllocale and POSIX.
For historical reasons, if you omit the list, $_
is used as the format;
to use FILEHANDLE without a list, you must use a real filehandle like
FH
, not an indirect one like $fh
. However, this will rarely do what
you want; if $_ contains formatting codes, they will be replaced with the
empty string and a warning will be emitted if warnings are enabled. Just
use print
if you want to print the contents of $_.
Don't fall into the trap of using a printf
when a simple
print
would do. The print
is more efficient and less
error prone.