printf関数 - 書式付き文字列出力
書式(フォーマット)を設定して文字列を出力するにはprintf関数を使用します。
printf "Number %03d %.3f\n", 3, 3.14567;
上記の出力結果は次のようになります。「3」という整数は3桁になるように左に0が埋められています。「3.14567」という小数点は「3.146」の小数点3桁に丸められています。
Number 003 3.146
「%03d」や「%.3f」は書式指定子と呼ばれます。書式指定子の詳細についてはsprintf関数の解説をご覧ください。
ファイルへの出力
fprintf関数でも、print関数と同じように、間接オブジェクト記法を使って、ファイルハンドルを指定して、出力することができます。
# 標準エラー出力へ出力 printf STDERR "Number %03d %.3f\n", 3, 3.14567; # ファイルハンドルを使ってファイルへ出力 printf $fh "Number %03d %.3f\n", 3, 3.14567;
ファイルハンドル後ろにはカンマがないことに注意してください。
出力する方法の詳細についてはprint関数の解説をご覧ください。
書式指定した文字列を変数に書き出す
printf関数は出力を行う関数ですがsprintf関数を使うと、書式指定した文字列を変数に書き出すことができます。
my $string = sprintf "Number %03d %.3f\n", 3, 3.14567;
sprintf関数の詳細については以下をご覧ください。