- 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 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 thatprintf(@_)
will use$_[0]
as the format. See sprintf for an explanation of the format argument. Ifuse locale
(includinguse locale ':not_characters'
) is in effect andPOSIX::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.$\
(出力レコードセパレータ)を追加しないことを除けば、print FILEHANDLE sprintf(FORMAT, LIST)
と等価です。 FORMAT と LIST は実際には単一のリストとしてパースされます。 リストの最初の要素は、printf フォーマットと解釈されます。 これは、printf(@_)
はフォーマットとして$_[0]
を使うということです。 フォーマット引数の説明については sprintf を 参照してください。 (use locale ':not_characters'
を含む)use locale
が有効で、POSIX::setlocale
が呼び出されていれば、 小数点に使われる文字はLC_NUMERIC
ロケール設定の影響を受けます。 perllocale と POSIX を参照してください。For historical reasons, if you omit the list,
$_
is used as the format; to use FILEHANDLE without a list, you must use a bareword 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 use print if you want to print the contents of$_
.歴史的な理由により、リストを省略すると、フォーマットとして
$_
が使われます; リストなしで FILEHANDLE を使用するには、$fh
のような 間接ファイルハンドルではなく、FH
のような裸の単語の ファイルハンドルを使わなければなりません。 しかし、これがあなたが求めていることをすることはまれです;$_
がフォーマッティングコードの場合、空文字列に置き換えられ、 warnings が有効なら警告が出力されます。$_
の内容を表示したい場合は、単に print を使ってください。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.
単純な print を使うべきところで printf を使ってしまう 罠にかからないようにしてください。 print はより効率的で、間違いが起こりにくいです。