printf FILEHANDLE FORMAT, LIST
printf FILEHANDLE
printf FORMAT, LIST
printf

Equivalent to print FILEHANDLE sprintf(FORMAT, LIST), except that $\ (the output record separator) is not appended. The first argument of the list will be interpreted as the printf format. See sprintf for an explanation of the format argument. If you omit the LIST, $_ is used; to use FILEHANDLE without a LIST, you must use a real filehandle like FH, not an indirect one like $fh. 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.

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.