printf
- printf FILEHANDLE
- printf FORMAT, LIST
- printf
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 theprintf
format. This means thatprintf(@_)
will use$_[0]
as the format. See sprintf for an explanation of the format argument. Ifuse locale
forLC_NUMERIC
Look for this throught pod is in effect and POSIX::setlocale() has been called, the character used for the decimal separator in formatted floating-point numbers is affected by theLC_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 likeFH
, 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 useprint
if you want to print the contents of $_.Don't fall into the trap of using a
printf
when a simpleprint
would do. Theprint
is more efficient and less error prone.