C:\>perldoc -f printf 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" 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.